首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >还原管道: DotNetCoreCLI‘AzureDevOps’忽略Directory.Build.props文件

还原管道: DotNetCoreCLI‘AzureDevOps’忽略Directory.Build.props文件
EN

Stack Overflow用户
提问于 2021-04-16 04:40:06
回答 1查看 346关注 0票数 0

我们正在从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包。还原任务可以工作,但生成任务会失败,并显示以下错误:

代码语言:javascript
复制
  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:

代码语言:javascript
复制
- task: NuGetCommand@2
  inputs:
    command: 'restore'
    restoreSolution: '**/*.sln'
    feedsToUse: 'config'
    nugetConfigPath: 'NuGet.config'

DotNetCoreCLI

代码语言:javascript
复制
- task: DotNetCoreCLI@2
  displayName: DotNetCoreCLI NuGet restore
  inputs:
    command: 'restore'
    projects: '**/*.csproj'
    feedsToUse: 'config'
    nugetConfigPath: 'NuGet.config'

NuGet.Config包括以下内容

代码语言:javascript
复制
  <packageSources>
    ...
    <add key="nuget.org" value="https://api.nuget.org/v3/index.json"/>
  </packageSources>

Directory.Build.props

代码语言:javascript
复制
<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>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67115762

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档