Microsoft.NET.Sdk.CrossTargeting.targets上的Azure DevOps中的Visual Studio生成管道错误

问题描述 投票:0回答:1

我处于将我的代码库从.NET Framework迁移到.NET Standard的早期阶段。我正在将解决方案中的一些基础项目转换为具有net462和netstandard2.0目标框架的SDK项目类型。

我所有的应用程序和服务仍然是.NET Framework。

为了澄清,我有一个针对这两个框架的库项目,然后是将多目标项目作为参考的其他库项目(仅.NET Framework),然后是引用了所有库的应用程序(仅.NET Framework)。以上。

当我在Visual Studio 2019中编译我的解决方案时,它编译得很好。如果我进行手动发布,那也很好。但是,当我尝试对Azure DevOps进行PR时,我的CI生成带有以下错误的管道错误:

[错误] C:\ Program Files \ dotnet \ sdk \ 3.0.100 \ Sdks \ Microsoft.NET.Sdk \ targets \ Microsoft.NET.Sdk.CrossTargeting.targets(27,5):错误:“发布”如果不指定目标框架,则不支持target。当前项目针对多个框架,请为已发布的应用程序指定框架。

Google建议,如果我使用dotnet -publish,则需要提供一个框架参数。但是,VSBuild任务似乎不支持该功能。

与我的管道有关的YAML是:

steps:
- task: VSBuild@1
  displayName: 'Check for Build Errors'
  inputs:
    solution: '$(SolutionName)'
    msbuildArgs: '/target:publish'
    platform: '$(BuildPlatform)'
    configuration: '$(BuildConfiguration)'
    maximumCpuCount: true

还有想法或澄清问题?

azure-devops visual-studio-2019 .net-standard-2.0
1个回答
0
投票

msbuildArgs中为目标框架指定MSBuild参数是否会为您提供所需的结果?

    msbuildArgs: '/target:publish /p:TargetFramework=net462'

reference命令的dotnet msbuild表示支持相同的MSBuild参数,并以回旋方式将您引向here,您可以在其中看到用于不同目标框架的绰号。

© www.soinside.com 2019 - 2024. All rights reserved.