![](/img/trans.png)
[英]Ignore duplicates when pushing nuget package to nuget.org from VSTS
[英]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.config
與nuget.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.