簡體   English   中英

即使我已經從 NuGet.config 中刪除了提要,Jenkins 也會從 nuget.org 下載 nuget 包

[英]Jenkins downloads nuget packages from nuget.org even though I have removed the feed from NuGet.config

我有一個用於 nuget 包的內部托管關系。 我在 nuget.config 中添加了 nexus repo url。 我還刪除了 nuget.org 提要,因此它不會從 Internet 下載軟件包。 我在同一台機器上托管了詹金斯。 但是當在 jenkins 中執行構建時,nuget 包是從互聯網而不是 nexus repo 下載的。 jenkins 是否引用了任何單獨的 nuget.config 文件? 或者是否有任何命令可以刪除 nuget.org 提要,以便我可以在 jenkins 中執行它!

正如 NuGet 的常見 NuGet 配置文檔所述,NuGet 從多個nuget.config文件中累積設置。 您沒有解釋如何“刪除 nuget.org 提要”,但我能想到的只有一種方法可以使其可靠且可重現。 正如我已經鏈接的文檔頁面和nuget.config 參考頁面中提到的,在<packageSources>元素中允許有一個<clear /> <packageSources>元素,它告訴 NuGet 忽略在任何累積的nuget.config文件中定義的nuget.config

如果您使用 Visual Studio 刪除了 nuget.org 提要,不幸的是,VS 的 NuGet 設置過於簡單,無法理解和處理多文件繼承設置。 在 VS 中添加或刪除源時,它通常會編輯您的用戶配置文件nuget.config ,這意味着它會影響當前計算機上的所有解決方案和當前用戶配置文件。 這意味着當您在不同的機器上使用 repo 時,甚至在同一台機器上使用不同的用戶配置文件時,您認為應用於解決方案的 NuGet 設置不再存在。 您需要使用 nuget.exe、dotnet cli,或者只是手動編輯 nuget.config xml 文件。

NuGet 將在它運行的任何機器上,並且在默認用戶配置文件位置找不到nuget.config文件,創建一個nuget.confignuget.org預配置。 因此,如果你的回購沒有明確清晰的繼承源,當運行的NuGet,第一次在一個新的用戶配置文件,它會創建一個nuget.config包括nuget.org 因此,如果您的解決方案沒有自己的使用<clear /> nuget.config ,那么它將在您沒有從用戶配置文件 nuget.config 中刪除 nuget.org 的任何機器上繼承 nuget.org。

因此,假設唯一需要的設置是公司 nuget 提要,您應該在nuget.config庫根目錄中簽入一個nuget.config ,其內容大致類似於:

<configuration>
  <packageSources>
    <clear />
    <add key="company-feed" value="https://wheverver/index.json" />
  </packageSources>
</configuration>

使用—source (或-s )選項運行 dotnet build。 這將允許您指定 NuGet 源。 有關更多詳細信息,請參閱dotnet 構建文檔

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM