在 VSTS 中混合来自 nuget.org 和存储库文件夹的包
Mixing packages from nuget.org and repository folder in VSTS
我的解决方案从 Nuget.org 获取一些 nuget 包,其中一些在我的存储库中的 "lib" 文件夹下。我知道在我的存储库中包含软件包不是最佳选择,但现在,我坚持使用它。
在我的解决方案中 nuget.config 看起来像这样:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<packageSources>
<add key="nuget.org" value="https://api.nuget.org/v3/index.json" />
<add key="CustomSource" value="../lib" />
</packageSources>
<activePackageSource>
<add key="All" value="(Aggregate source)" />
</activePackageSource>
<solution>
<add key="disableSourceControlIntegration" value="true" />
</solution>
</configuration>
它在 Visual Studio 中运行良好。
在 VSTS 中,我更改了 nuget 恢复任务选项:
我的构建失败是这样的:
The nuget command failed with exit code(1) and error(Failed to
retrieve information about
'Microsoft.Extensions.Configuration.Abstractions' from remote source
'D:\a\lib'.)
Packages failed to restore
显然,Microsoft.Extensions.Configuration.Abstractions 应该从 nuget.org 下载。我应该更改什么以便它尝试使用 2 个 nuget 源?
谢谢!
如果您在 NuGet 恢复任务中指定了自己的 NuGet.config
文件,它会将指定 NuGet.config
文件的内容保存到一个临时配置文件中,例如:D:\a\Nuget\tempNuGet_3274.config
.
因此,如果您使用托管代理,则应将本地提要路径指定为:
<add key="CustomSource" value="../s/Projectname/lib" />
此外,您还可以使用位于您本地机器上的private agent,以便可以从其他目录找到包。
我的解决方案从 Nuget.org 获取一些 nuget 包,其中一些在我的存储库中的 "lib" 文件夹下。我知道在我的存储库中包含软件包不是最佳选择,但现在,我坚持使用它。
在我的解决方案中 nuget.config 看起来像这样:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<packageSources>
<add key="nuget.org" value="https://api.nuget.org/v3/index.json" />
<add key="CustomSource" value="../lib" />
</packageSources>
<activePackageSource>
<add key="All" value="(Aggregate source)" />
</activePackageSource>
<solution>
<add key="disableSourceControlIntegration" value="true" />
</solution>
</configuration>
它在 Visual Studio 中运行良好。
在 VSTS 中,我更改了 nuget 恢复任务选项:
我的构建失败是这样的:
The nuget command failed with exit code(1) and error(Failed to retrieve information about 'Microsoft.Extensions.Configuration.Abstractions' from remote source 'D:\a\lib'.)
Packages failed to restore
显然,Microsoft.Extensions.Configuration.Abstractions 应该从 nuget.org 下载。我应该更改什么以便它尝试使用 2 个 nuget 源? 谢谢!
如果您在 NuGet 恢复任务中指定了自己的 NuGet.config
文件,它会将指定 NuGet.config
文件的内容保存到一个临时配置文件中,例如:D:\a\Nuget\tempNuGet_3274.config
.
因此,如果您使用托管代理,则应将本地提要路径指定为:
<add key="CustomSource" value="../s/Projectname/lib" />
此外,您还可以使用位于您本地机器上的private agent,以便可以从其他目录找到包。