我处于将我的代码库从.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
还有想法或澄清问题?