响应状态代码未指示成功:在Azure管道上的“恢复”任务中为401

时间:2019-12-10 12:08:52

标签: asp.net-mvc asp.net-core azure-pipelines azure-artifacts

我遇到以下错误:

error : Unable to load the service index for source https://privateLibrary.com/private/_packaging/privateOrganitation/nuget/v3/index.json. [/home/vsts/work/1/s/Local.Proyect.Core/Local.Proyect.Core.csproj]
       /usr/share/dotnet/sdk/3.0.101/NuGet.targets(123,5): 
error :   Response status code does not indicate success: 401 (Unauthorized). [/home/vsts/work/1/s/Local.Proyect.Core/Local.Proyect.Core.csproj]

我的azure-pipeline.yml:

variables:
  buildConfiguration: 'Release'
  localProyectName: 'Local.Proyect.Core'
  localProyectCoreDirectory: './Local.Proyect.Core'


trigger:
 branches:
   include:
     - master

steps:
- task: UseDotNet@2
  inputs:
    packageType: 'sdk'
- task: DotNetCoreCLI@2
  displayName: 'dotnet restore'
  inputs:
    command: restore
    projects: '**/$(localProyectName).csproj'
    feedsToUse: config
    nugetConfigPath: $(localProyectCoreDirectory)/NuGet.Config
    arguments: --force

- task: DotNetCoreCLI@2
  displayName: 'Build All'
  inputs:
    projects: '**/$(localProyectName).csproj'
    arguments: '--no-restore --configuration $(buildConfiguration)'

- script: dotnet publish --configuration $(buildConfiguration) --output $(Build.ArtifactStagingDirectory)/$(localProyectName) ./$(localProyectName)/$(localProyectName).csproj
  displayName: 'dotnet publish of project $(localProyectName)'

- task: PublishBuildArtifacts@1
  displayName: 'Publish Artifact: $(localProyectName)'
  inputs:
    PathtoPublish: '$(Build.ArtifactStagingDirectory)/$(localProyectName)'
    ArtifactName: '$(localProyectName)'

命令还原中的错误开始。如您所见,在azure devops计算机中无法还原mi专用数据包。我在应用内部 “ Local.Proyect.Core”中使用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="privateOrgnitation" value="https://privateLibrary.com/private/_packaging/privateOrganitation/nuget/v3/index.json." />
    <add key="nuget.org" value="https://api.nuget.org/v3/index.json" protocolVersion="3" />
  </packageSources>
  <bindingRedirects>
    <add key="skip" value="False" />
  </bindingRedirects>
  <packageManagement>
    <add key="format" value="0" />
    <add key="disabled" value="False" />
  </packageManagement>
</configuration>

为什么机器无法在其他组织中找到我的Azure工件?以及为什么我在Visual Studio中没有任何错误,这里是...

2 个答案:

答案 0 :(得分:1)

Okey,自从遇到此问题以来,等待了很长一段时间后,我通过内部组织代码和nuget数据包工件来解决了这个问题。问题在于,在devops中,我的数据包位于不同的组织中,并且是一个私有存储库。因此,现在当天蓝色的机器需要工件nuget时,nuget可以将其用于构建我的项目。

答案 1 :(得分:0)

  

响应状态代码未指示成功:在蔚蓝管道上的“恢复”任务中显示401

根据错误信息:

  

Response status code does not indicate success: 401 (Unauthorized)

似乎您没有在nuget.config中提供软件包来源的凭据,可以尝试在nuget.config中提供凭据,例如:

<packageSourceCredentials>
    <privateOrgnitation>
        <add key="Username" value="user@contoso.com" />
        <add key="ClearTextPassword" value="YourPassword" />
    </privateOrgnitation>
</packageSourceCredentials>

查看文档packageSourceCredentials,了解更多详细信息。

希望这会有所帮助。