在Azure DevOps部署Windows VMSS应用时遇MSB4019错误求助
错误信息
[error]EchangeDonneesElectroniques\EchangeDonneesElectroniques\EDE.csproj(365,3): Error MSB4019: 未找到导入的项目“C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v11.0\WebApplications\Microsoft.WebApplication.targets”。请确认声明中的路径正确,且文件存在于磁盘上。
解决方案
检查构建代理的MSBuild/Visual Studio版本
错误路径指向Visual Studio 2012(v11.0)的Web应用目标文件,你的构建代理大概率没安装这个旧版本,或者项目实际需要更高版本的工具。在Azure DevOps管道中,确保MSBuild任务使用的版本和项目兼容——比如项目基于VS2019,就选MSBuild 16.x,不要用过时的版本。修改csproj文件的导入路径
打开EDE.csproj找到第365行的导入语句,把硬编码的v11.0替换为动态变量或对应版本号:<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\WebApplications\Microsoft.WebApplication.targets" />用
$(VisualStudioVersion)变量可以让MSBuild自动适配当前环境的VS版本,避免硬编码版本号导致的路径不匹配。确保构建代理安装Web开发工作负载
如果用微软托管代理,直接选windows-latest镜像(默认包含VS2022及Web开发组件);如果是自托管代理,打开Visual Studio安装器,勾选「ASP.NET和Web开发」工作负载,确保对应的MSBuild目标文件被安装。强制指定MSBuild的VS版本参数
在Azure DevOps的MSBuild任务中,添加MSBuildArguments参数,明确指定VS版本:/p:VisualStudioVersion=16.0这里的
16.0对应VS2019,可根据实际使用的VS版本调整。
内容的提问来源于stack exchange,提问作者joel kamgaing

