如何在MSBuild 15.0命令行(VS2017)指定私有NuGet包源?
在Visual Studio 2017中使用MSBuild 15.0指定私有NuGet源的方法
当然可以指定私有NuGet源啦!针对你用MSBuild 15.0的场景,这里有两种实用的解决方法:
方法一:在MSBuild命令中直接指定源
你可以通过/p:RestoreSources参数显式指定要使用的NuGet源,多个源之间用分号分隔。这样既能包含你的私有源,也能保留nuget.org的公共源(如果项目需要依赖公共包的话)。修改后的PowerShell命令如下:
&$msbuild /t:restore /tv:15.0 /t:Rebuild /p:Configuration=Release /p:RestoreSources="https://your-private-nuget-server/v3/index.json;https://api.nuget.org/v3/index.json"
如果你的项目只需要私有源的包,去掉后面的官方源地址即可。
方法二:通过NuGet.config配置源
如果你不想每次执行命令都手动添加参数,可以在项目根目录(或用户全局目录)下创建/修改NuGet.config文件,将私有源配置进去。MSBuild执行restore时会自动读取这个配置文件。
示例NuGet.config内容:
<?xml version="1.0" encoding="utf-8"?> <configuration> <packageSources> <!-- 自定义私有源,key是源的名称,value是源地址 --> <add key="MyPrivateNuGetServer" value="https://your-private-nuget-server/v3/index.json" /> <!-- 保留官方NuGet源 --> <add key="nuget.org" value="https://api.nuget.org/v3/index.json" protocolVersion="3" /> </packageSources> </configuration>
- 放在项目根目录:仅对当前项目生效;
- 放在用户全局目录(Windows下为
%appdata%\NuGet\NuGet.config):对所有本地项目生效。
额外说明
如果你的私有源需要身份验证,还可以:
- 在命令中添加
/p:RestoreUsername="你的用户名"和/p:RestorePassword="你的密码"参数; - 或者在
NuGet.config中配置凭据(更安全,避免明文密码暴露在命令行)。
内容的提问来源于stack exchange,提问作者Aathira
相关产品推荐
相关产品推荐

