我有一个MSBuild文件可将解决方案(在VS 2013中创建并移植到VS 2017)发布到远程服务器.令人讨厌的一句话是:
10.0
$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)
当我运行命令时:
"C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\15.0\Bin\msbuild" WebSite1_Web_configs.build /p:Configuration=Integracion;Platform="AnyCPU" /p:VisualStudioVersion=15.0
经过一些编译后,最终会出现以下错误:
Error MSB4062 The "TransformXml" task could not be loaded from the assembly C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\Microsoft\VisualStudio\v12.0\Web\Microsoft.Web.Publishing.Tasks.dll
当然不能加载,因为版本应该是15.0,而不是12.0.
我尝试过的事情:
>将/p:VisualStudioVersion=15.0添加到我调用MSBuild的命令中.没用
>在* .csproj文件中更改元素:
对于:
没用
因此,如何在MSBuild文件中使用$(VisualStudioVersion)获得正确的VS版本,而不必对其进行硬编码?