我有一个在本地可以正常运行的项目,但是在dotnet build
命令中在VSTS中失败。该错误对我来说似乎很奇怪,因为我不知道为什么构建命令会尝试再次还原软件包。错误显示如下:
2018-07-09T11:06:48.2541705Z重试'FindPackagesByIdAsync' 资源 'https://mycompany.pkgs.visualstudio.com/_packaging/5b9fd539-d653-4771-aa3c-6544d73b1234/nuget/v3/flat2/system.data.sqlclient/index.json'。 2018-07-09T11:06:48.2562315Z响应状态代码未指示 成功:401(未经授权)。
在构建步骤之前,我有一个dotnet恢复步骤,该步骤已成功完成。还原步骤使用了一个NuGet.config文件,该文件在VSTS中包含私有提要,但URL看起来与错误中的URL不相似。这是为了清楚起见的文件。
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<packageSources>
<add key="MyCompany.NuGet.Internal" value="https://MyCompany.pkgs.visualstudio.com/_packaging/MyCompany.NuGet.Internal/nuget/v3/index.json" />
<add key="MyCompany.NuGet.ThirdParty" value="https://MyCompany.pkgs.visualstudio.com/_packaging/MyCompany.Nuget.ThirdParty/nuget/v3/index.json" />
</packageSources>
</configuration>
这里可能是什么问题? dotnet构建步骤是否完全忽略了NuGet.config文件并尝试了项目中的提要?我不知道该提要URL是如何生成的。
答案 0 :(得分:0)
我能够通过向--no-restore
命令传递dotnet build
参数来解决此问题。
我刚刚读过this article here,想试一试就可以了。
使用.NET Core 1.x SDK,您需要显式运行dotnet 在运行dotnet build之前还原。从.NET Core 2.0 SDK开始, 当您运行dotnet build时,dotnet还原将隐式运行。如果你想 要在运行build命令时禁用隐式还原,您可以 通过--no-restore选项
VSTS中的dotnet build
似乎并不关心NuGet.config文件,并尝试在没有该文件的情况下进行还原。