如何 运行 `dotnet list package --deprecated` for Azure Artifact feed on Azure Pipelines
How to run `dotnet list package --deprecated` for Azure Artifact feed on Azure Pipelines
我正在尝试 运行 dotnet list package --deprecated
用于使用来自 Azure Artifact 源的包的项目。
我把它包装在 DotNetCoreCLI
任务中:
- task: DotNetCoreCLI@2
displayName: 'List deprecated packages'
continueOnError: true
inputs:
command: custom
custom: list
arguments: 'package --deprecated'
我在 nuget.config
文件中配置了资源,当我使用 dotnet restore
时效果很好。但是,当我 运行 list package
我有:
The following sources were used:
https://api.nuget.org/v3/index.json
https://pkgs.dev.azure.com/...../nuget/v3/index.json
https://pkgs.dev.azure.com/......./nuget/v3/index.json
然后:
error: Response status code does not indicate success: 401 (Unauthorized).
我尝试通过以下方式显式添加来源:
- script: |
nuget sources add -name "Source1" -source https://pkgs.dev.azure.com/...../nuget/v3/index.json -username anything -password %SYSTEM_ACCESSTOKEN%
nuget sources add -name "Source2" -source https://pkgs.dev.azure.com/...../nuget/v3/index.json -username anything -password %SYSTEM_ACCESSTOKEN%
enabled: false
env:
SYSTEM_ACCESSTOKEN: $(System.AccessToken)
displayName: Add NuGet source
但这失败了,因为:
The source specified has already been added to the list of available package sources. Provide a unique source.
The source specified has already been added to the list of available package sources. Provide a unique source.
我还修改了对Allow project-scoped builds
的权限:
我也在 GitHub dotnet list package --outdated` doesn't work with sources that need auth #7605 上找到了这个主题,但是,尽管它现在已经关闭,但我在那里看不到太多帮助。
当我 运行 在本地使用 --interactive
标志时,系统不断提示我登录:
但是,dotnet restore
有效。我尝试了我想到的一切,但仍然没有任何进展。它在本地和 Azure Pipelines 上都不起作用。
你知道我做错了什么吗?
我找到了解决方法。当我删除 nuget.config
并明确添加源时,它成功了。
- script: |
del nuget.config
nuget sources add -name "Source1" -source https://pkgs.dev.azure.com/...../nuget/v3/index.json -username anything -password %SYSTEM_ACCESSTOKEN%
nuget sources add -name "Source2" -source https://pkgs.dev.azure.com/....../nuget/v3/index.json -username anything -password %SYSTEM_ACCESSTOKEN%
enabled: true
env:
SYSTEM_ACCESSTOKEN: $(System.AccessToken)
displayName: Add NuGet source
但是,我想知道是否有另一种方法,因为这对我来说感觉很奇怪。
正如 Jonathan Myers 所建议的那样,我使用了 - task: NuGetAuthenticate@0
,它几乎可以正常工作。几乎是因为在分析第一个项目时我得到了:
error: Problem starting the plugin 'C:\Users\VssAdministrator\.nuget\plugins\netcore\CredentialProvider.Microsoft\CredentialProvider.Microsoft.dll'. Plugin 'CredentialProvider.Microsoft' failed within 5.068 seconds with exit code -1.
error: Response status code does not indicate success: 401 (Unauthorized).
我找到了这个 topic on Developer Community 并通读了一遍,但我仍在努力解决这个问题。
我正在尝试 运行 dotnet list package --deprecated
用于使用来自 Azure Artifact 源的包的项目。
我把它包装在 DotNetCoreCLI
任务中:
- task: DotNetCoreCLI@2
displayName: 'List deprecated packages'
continueOnError: true
inputs:
command: custom
custom: list
arguments: 'package --deprecated'
我在 nuget.config
文件中配置了资源,当我使用 dotnet restore
时效果很好。但是,当我 运行 list package
我有:
The following sources were used:
https://api.nuget.org/v3/index.json
https://pkgs.dev.azure.com/...../nuget/v3/index.json
https://pkgs.dev.azure.com/......./nuget/v3/index.json
然后:
error: Response status code does not indicate success: 401 (Unauthorized).
我尝试通过以下方式显式添加来源:
- script: |
nuget sources add -name "Source1" -source https://pkgs.dev.azure.com/...../nuget/v3/index.json -username anything -password %SYSTEM_ACCESSTOKEN%
nuget sources add -name "Source2" -source https://pkgs.dev.azure.com/...../nuget/v3/index.json -username anything -password %SYSTEM_ACCESSTOKEN%
enabled: false
env:
SYSTEM_ACCESSTOKEN: $(System.AccessToken)
displayName: Add NuGet source
但这失败了,因为:
The source specified has already been added to the list of available package sources. Provide a unique source.
The source specified has already been added to the list of available package sources. Provide a unique source.
我还修改了对Allow project-scoped builds
的权限:
我也在 GitHub dotnet list package --outdated` doesn't work with sources that need auth #7605 上找到了这个主题,但是,尽管它现在已经关闭,但我在那里看不到太多帮助。
当我 运行 在本地使用 --interactive
标志时,系统不断提示我登录:
但是,dotnet restore
有效。我尝试了我想到的一切,但仍然没有任何进展。它在本地和 Azure Pipelines 上都不起作用。
你知道我做错了什么吗?
我找到了解决方法。当我删除 nuget.config
并明确添加源时,它成功了。
- script: |
del nuget.config
nuget sources add -name "Source1" -source https://pkgs.dev.azure.com/...../nuget/v3/index.json -username anything -password %SYSTEM_ACCESSTOKEN%
nuget sources add -name "Source2" -source https://pkgs.dev.azure.com/....../nuget/v3/index.json -username anything -password %SYSTEM_ACCESSTOKEN%
enabled: true
env:
SYSTEM_ACCESSTOKEN: $(System.AccessToken)
displayName: Add NuGet source
但是,我想知道是否有另一种方法,因为这对我来说感觉很奇怪。
正如 Jonathan Myers 所建议的那样,我使用了 - task: NuGetAuthenticate@0
,它几乎可以正常工作。几乎是因为在分析第一个项目时我得到了:
error: Problem starting the plugin 'C:\Users\VssAdministrator\.nuget\plugins\netcore\CredentialProvider.Microsoft\CredentialProvider.Microsoft.dll'. Plugin 'CredentialProvider.Microsoft' failed within 5.068 seconds with exit code -1.
error: Response status code does not indicate success: 401 (Unauthorized).
我找到了这个 topic on Developer Community 并通读了一遍,但我仍在努力解决这个问题。