如何在 msbuild 15.0 命令行中指定私有 nuget 包源?

How to specify private nuget package source in msbuild 15.0 command line?

在 vs 2017 中使用 msbuild 15.0 时是否可以指定私有 nuget 源服务器? 我当前使用的 powershell 命令如下:

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

这在默认情况下仅提取 nuget.org 的提要。

您可以使用 /p:RestoreAdditionalProjectSources=… 指定其他来源。

此外,使用 /restore (MSBuild 15.3+) 而不是将 Restore 与其他目标一起指定,以便正确重新加载 NuGet 生成的所有更改文件。

How to specify private nuget package source in msbuild 15.0 command line?

如果只想从指定私有 nuget 包源恢复 nuget 包,可以使用 属性 RestoreSources 指定私有源:

msbuild /t:restore /p:RestoreSources=xxx /tv:15.0 /t:Rebuild /p:Configuration=Release

查看 restore target 了解更多详情。

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

nuget.config reference

我向位于“%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>