![](/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.