NuGet packageSources优先级

Ske*_*bug 5 nuget

如果您的NuGet.config中有多个packageSource:

<packageSources>
  <clear />
  <add key="dev" value="http://server2/branches/feature1/nuget" />
  <add key="release" value="http://server1/nuget" />
</packageSources>
Run Code Online (Sandbox Code Playgroud)

运行nuget install等时使用的XML顺序是什么?如果我在两个版本的1.0.0-SNAPSHOT中都有packageA,那么feature1分支上的dev通道版本会赢吗?

Fra*_*yce 3

nuget.config 中的提要顺序决定了它们在 Visual Studio 中 NuGet 的各种视图的下拉菜单中显示的顺序。在所有情况下,您都可以选择从哪个源进行安装。请参阅下面的屏幕截图。

Visual Studio 不会跟踪包的来源,因此包 ID 实际上位于全局命名空间中,您必须知道它属于哪个提要。Visual Studio 将向您显示所选源中具有匹配 ID 的任何包,因此您可能会用来自不同源的另一个源覆盖从一个源安装的包。

对于我在公司管理的 NuGet 源,我为内部包添加前缀,<CompanyName>.以降低现在和将来命名冲突的风险。

在此输入图像描述

在此输入图像描述

  • 这不是存在安全风险吗?如果有人设法将包含 YourCompanyName.NugetPackage 的包发布到公共 nuget feed 会发生什么?是否有可能安装恶意软件包? (2认同)
  • 这确实是一个安全风险。nuget 怎么没有实现源优先级或包参考级别源规范? (2认同)