如何在MSBuild 15.0命令行中指定私有NuGet包源?

13

在使用VS 2017中的msbuild 15.0时,是否可以指定私有NuGet Feed服务器?我当前正在使用以下PowerShell命令:

&$msbuild /t:restore /tv:15.0 /t:Rebuild /p:Configuration=Release

默认情况下,仅获取nuget.org的源。


是的,问题已经解决了。请参考 AjItH V S 的答案。 - Aathira
1
请注意,建议您暂时不要这样做,并在使用私有源时改用命令行界面(CLI):https://github.com/NuGet/Home/issues/6609#issuecomment-369100145 - kayleeFrye_onDeck
4个回答

17
如何在msbuild 15.0命令行中指定私有nuget包源?
如果您只想从指定的私有nuget包源还原nuget包,可以使用属性RestoreSources来指定私有源:
msbuild /t:restore /p:RestoreSources=xxx /tv:15.0 /t:Rebuild /p:Configuration=Release

请查看还原目标以获取更多细节。


5
/p:RestoreSources=中,多个来源需要用转义版本的分号; -> %3B 进行拆分。例如,对于url1url2,应写为/p:RestoreSources=url1%3Burl2 - Nenad

9
你可以使用/p:RestoreAdditionalProjectSources=…来指定其他的源。
此外,使用/restore(MSBuild 15.3+)代替同时指定Restore和其他目标,以便所有由NuGet生成的更改文件都能正确重新加载。

4
这到底在哪里有记录啊?所有隐藏的msbuild/nuget选项都很难找到! - kayleeFrye_onDeck
您是不是想使用 RestoreAdditionalProjectSources 而不是 p:RestoreSources - nl-x
是的,显然我从一个NuGet问题中复制了这个错误的内容。已经进行了编辑。 - Martin Ullrich
2
@kayleeFrye_onDeck https://learn.microsoft.com/en-us/nuget/reference/msbuild-targets - Lars

3

MS Build 从解决方案根目录读取 NuGet.Config 文件。您可以添加一个新的 Nuget.config 文件,并在其中指定外部仓库。

nuget.config 参考文档


0

我在位于'%appdata%\NuGet\NuGet.Config'的nuget.config文件中添加了一个新的软件包源,如下所示:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <packageSources>
    <add key="nuget.org" value="https://api.nuget.org/v3/index.json" protocolVersion="3" />
    <add key="anotherSource" value="http://10.2.36.4:53673/nuget" />
  </packageSources>
</configuration>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接