我的工作有一个私有NuGet仓库。我可以从私有仓库和nuget.org安装软件包。但是当私有仓库中的软件包依赖于nuget.org中托管的软件包时,就会遇到问题。
例如,我的私有仓库中托管一个名为P1的软件包。P1依赖于在nuget.org上托管的P2。如果我将私有仓库设置为源并执行“install-package P1”,则会出现错误,指出找不到依赖项P2。这很合理,因为它正在私有仓库中查找P2,但P2在nuget.org上托管。到目前为止,解决方法是从nuget.org安装P2,然后从私有仓库安装P1。虽然这在技术上可行,但这样做很繁琐,而且会使向团队推广NuGet变得困难。
是否有任何方法可以使用多个源运行install-package?我尝试将列表传递到“-Source”参数中,但迄今为止没有成功。
NuGet.config由Visual Studio管理,因此每次在Visual Studio中运行nuget命令时,对其进行的任何更改都将被清除。我尝试在解决方案级别添加额外的nuget.config文件,但据我所知,它被忽略了。我尝试过几次install-package命令的不同访问方式,但它们通常看起来像这样:
Install-Package P1 -Source https://api.nuget.org/v3/index.json,http://privatefeed.com
以下是NuGet.config文件的参考内容,但更改它似乎是徒劳的。
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<packageRestore>
<add key="enabled" value="True" />
<add key="automatic" value="True" />
</packageRestore>
<packageSources>
<add key="nuget.org" value="https://api.nuget.org/v3/index.json" protocolVersion="3" />
<add key="Private Nuget" value="http://privatefeed.com" />
</packageSources>
<disabledPackageSources>
<add key="Microsoft and .NET" value="true" />
</disabledPackageSources>
<activePackageSource>
<add key="nuget.org" value="https://api.nuget.org/v3/index.json" />
</activePackageSource>
</configuration>