恢复软件包时,dotnet build命令失败

时间:2018-07-09 11:39:50

标签: nuget azure-devops nuget-package-restore

我有一个在本地可以正常运行的项目,但是在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是如何生成的。

1 个答案:

答案 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文件,并尝试在没有该文件的情况下进行还原。