【问题标题】:How to I specify a NuGet package comes from an external source in packages.config?如何指定 NuGet 包来自 packages.config 中的外部源?
【发布时间】:2015-01-07 09:36:43
【问题描述】:

我正在开发一个依赖于外部源上的 NuGet 项目的项目。我们正在使用包还原,而不是将包提交到 Git。对于未在 NuGet 设置中配置此源的开发人员,是否可以在 packages.config 文件中指定应从其他源中提取此包?

例如,

<?xml version="1.0" encoding="utf-8"?>
<packages>
  <package id="Antlr" version="3.4.1.9004" targetFramework="net45" />
  <package id="bootstrap" version="3.0.0" targetFramework="net45" />
  ...

  <!-- How do I specify that this custom package comes from a different source? -->
  <package id="MyCustomPackage" version="1.0.0" targetFramework="net45" />

  ...
  <package id="Respond" version="1.2.0" targetFramework="net45" />
  <package id="WebGrease" version="1.5.2" targetFramework="net45" />
</packages>

【问题讨论】:

  • 我希望类似于 mysource.com/nuget" /> 但我似乎在任何地方都找不到。
  • 相同。公认的答案不太理想。我正在对具有 4 个不同 nuget 源的构建进行分类,并且 nuget 尝试从每个源中获取每个包。这需要永远!

标签: nuget


【解决方案1】:

每个用户都可以拥有自己的配置文件,您可以在其中指定源的位置:

<packageSources>
        <add key="NuGet official package source" value="https://nuget.org/api/v2/" />
        <add key="TestSource" value="C:\Temp" />
</packageSources>

欲了解更多信息,请参阅docs here

您还可以通过将 NuGet.config 添加到项目或解决方案来在项目或解决方案级别进行配置。

【讨论】:

  • 有没有办法在项目级别进行设置,所以如果开发人员克隆现有源代码需要 0 个手动步骤?
  • @KenSykora - 如果您查看 Donal 链接到的文档,您会看到您可以将 NuGet.config 添加到项目或解决方案中。因此,如果您将其签入源代码控制,您可以自动为使用该项目的任何人提供自定义包源。
  • 太棒了——这需要通过 Visual Studio 让新用户获得更多可见性,类似于 ReSharper“保存团队设置”。感谢您的回答!
  • 这不是一个理想的解决方案。它会导致 nuget 检查 NuGet.config 使用的 per-package 中的所有源。对于具有许多 nuget 包及其依赖项的项目,这可能会造成很大的麻烦,尤其是在不大量利用缓存的基于云的动态构建环境中。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-16
  • 1970-01-01
  • 2015-04-30
  • 1970-01-01
  • 2018-03-29
相关资源
最近更新 更多