我们正在从NetFramework项目切换到具有多个TargetFrameworks的NetCore项目。如果Directory.Build.Props包含为net40或net35编写的代码,则需要一个TargetFramework文件。Directory.Build.Props中引用的NuGet包来自NuGet.org。
由于NuGetCommand是为NetFramework构建的,因此我们正尝试在yaml管道中从使用NuGetCommand切换到DotNetCoreCLI。然而,DotNetCoreCLI 'restore‘似乎不包括Directory.Build.props中的NuGet包。还原任务可以工作,但生成任务会失败,并显示以下错误:
Determining projects to restore...
Failed to download package 'Microsoft.NETFramework.ReferenceAssemblies.net20.1.0.0' from 'https://pkgs.dev.azure.com/organizationName/34aabd4f-e198-4449-8f63-4bc7afc96f97/_packaging/a5bd5a70-fb61-4e6a-b586-6828474df9df/nuget/v3/flat2/microsoft.netframework.referenceassemblies.net20/1.0.0/microsoft.netframework.referenceassemblies.net20.1.0.0.nupkg'.
Response status code does not indicate success: 401 (Unauthorized).
Failed to download package 'Microsoft.NETFramework.ReferenceAssemblies.net40.1.0.0' from 'https://pkgs.dev.azure.com/organizationName/34aabd4f-e198-4449-8f63-4bc7afc96f97/_packaging/a5bd5a70-fb61-4e6a-b586-6828474df9df/nuget/v3/flat2/microsoft.netframework.referenceassemblies.net40/1.0.0/microsoft.netframework.referenceassemblies.net40.1.0.0.nupkg'.
Response status code does not indicate success: 401 (Unauthorized).
Failed to download package 'Microsoft.NETFramework.ReferenceAssemblies.net40.1.0.0' from 'https://pkgs.dev.azure.com/organizationName/34aabd4f-e198-4449-8f63-4bc7afc96f97/_packaging/a5bd5a70-fb61-4e6a-b586-6828474df9df/nuget/v3/flat2/microsoft.netframework.referenceassemblies.net40/1.0.0/microsoft.netframework.referenceassemblies.net40.1.0.0.nupkg'.
Response status code does not indicate success: 401 (Unauthorized).
Failed to download package 'Microsoft.NETFramework.ReferenceAssemblies.net20.1.0.0' from 'https://pkgs.dev.azure.com/organizationName/34aabd4f-e198-4449-8f63-4bc7afc96f97/_packaging/a5bd5a70-fb61-4e6a-b586-6828474df9df/nuget/v3/flat2/microsoft.netframework.referenceassemblies.net20/1.0.0/microsoft.netframework.referenceassemblies.net20.1.0.0.nupkg'.
Response status code does not indicate success: 401 (Unauthorized).
##[error]C:\Program Files\dotnet\sdk\5.0.202\NuGet.targets(131,5): Error : Failed to download package 'Microsoft.NETFramework.ReferenceAssemblies.net40.1.0.0' from 'https://pkgs.dev.azure.com/organizationName/34aabd4f-e198-4449-8f63-4bc7afc96f97/_packaging/a5bd5a70-fb61-4e6a-b586-6828474df9df/nuget/v3/flat2/microsoft.netframework.referenceassemblies.net40/1.0.0/microsoft.netframework.referenceassemblies.net40.1.0.0.nupkg'.
Response status code does not indicate success: 401 (Unauthorized).NuGetCommand:
- task: NuGetCommand@2
inputs:
command: 'restore'
restoreSolution: '**/*.sln'
feedsToUse: 'config'
nugetConfigPath: 'NuGet.config'DotNetCoreCLI
- task: DotNetCoreCLI@2
displayName: DotNetCoreCLI NuGet restore
inputs:
command: 'restore'
projects: '**/*.csproj'
feedsToUse: 'config'
nugetConfigPath: 'NuGet.config'NuGet.Config包括以下内容
<packageSources>
...
<add key="nuget.org" value="https://api.nuget.org/v3/index.json"/>
</packageSources>Directory.Build.props
<Project>
<PropertyGroup>
<LangVersion>latest</LangVersion>
</PropertyGroup>
<ItemGroup Condition="'$(TargetFrameworkIdentifier)' == '.NETFramework'">
<PackageReference Include="Microsoft.NETFramework.ReferenceAssemblies" Version="1.0.0" PrivateAssets="all" />
<PackageReference Include="jnm2.ReferenceAssemblies.net35" Version="1.0.1" PrivateAssets="all" />
</ItemGroup>
</Project>发布于 2021-04-20 14:03:13
请使用dotnet生成任务中的--no-restore选项禁用隐式还原。
这里是document:dotnet restore命令在显式恢复有意义的某些场景中仍然有用,例如Azure DevOps服务中的持续集成构建,或者在需要显式控制恢复发生的构建系统中。
此外,dotnet restore在内部使用与.NET Core SDK打包在一起的NuGet.exe版本。dotnet restore只能恢复在.NET核心项目.csproj文件中指定的包。如果您的解决方案中还包含Microsoft .NET框架项目,或者使用package.json指定依赖项,则还必须使用NuGet任务来还原这些依赖项。请参考this document。
https://stackoverflow.com/questions/67115762
复制相似问题