我有一个非常简单的WPF项目(.Net 4.7.2)和单元测试项目(MSTest .Net Core),并且我试图将其构建在Azure Pipelines中,并且出现以下错误:>
2020-05-07T16:41:52.9562570Z C:\ Program 文件\ dotnet \ sdk \ 3.1.201 \ Microsoft.Common.CurrentVersion.targets(3032,5): 错误MSB4216:无法运行“ GenerateResource”任务,因为 MSBuild无法使用运行时“ CLR4”创建或连接到任务主机 和架构“ x86”。请确保(1)请求的运行时 和/或体系结构在计算机上可用,并且(2) 所需的可执行文件“ C:\ Program Files \ dotnet \ sdk \ 3.1.201 \ MSBuild.exe” 存在并且可以运行。 [C:\ agent_work \ 4 \ s \ RsSolution4 \ WpfApp1 \ WpfApp1.csproj] 2020-05-07T16:41:53.1174401Z ## [错误]错误:进程'C:\ Program Files \ dotnet \ dotnet.exe'失败,退出代码为1
我在建议的文件夹中寻找了msbuild.exe,并确定它不存在。该路径存在并且文件夹中有很多文件,只是msbuild.exe没有。有一个msbuild.dll。
这是我的Yaml文件:
trigger:
- master
pool:
name: Default
demands: msbuild
variables:
solution: '**/*.sln'
buildPlatform: 'Any CPU'
buildConfiguration: 'Release'
steps:
- task: DotNetCoreCLI@2
displayName: Restore NuGet
inputs:
command: 'custom'
projects: '**/*.csproj'
custom: 'restore'
- task: MSBuild@1
inputs:
solution: '**/*.sln'
msbuildLocationMethod: 'location'
msbuildLocation: 'C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\MSBuild\Current\Bin\msbuild.exe'
configuration: 'Release'
clean: true
- task: DotNetCoreCLI@2
displayName: SSP Automated Testing
inputs:
command: 'test'
projects: '**/*Test*.csproj'
arguments: '--configuration $(buildConfiguration)'
testRunTitle: 'SSP Testing'
答案 0 :(得分:1)
确保您添加了UseDotNet
任务,以确保在代理上可以使用正确版本的SDK:
- task: UseDotNet@2
inputs:
packageType: 'sdk'
version: '3.1.201'
我选择使用dotnet build
任务来构建.NET Core项目,并使用WPF项目的VisualStudioBuild
任务,那样您就不会在那时将框架类型和SDK混合在一起相同的解决方案版本。