如何强制 MSBuild 版本?
How to force MSBuild version?
我有一个构建项目的 MSBUILD 脚本(.bat 文件)。我需要将在本地执行的 MSBuild 脚本(在提交回购之前)到与我们的构建管理和持续集成服务器匹配的特定版本的 MSBuild 上的 运行。
问题是当前已安装所有本地 Developer box:
C:\Windows\Microsoft.NET\Framework\v3.5
C:\Windows\Microsoft.NET\Framework\v4.0.30319
C:\Program Files (x86)\MSBuild.0
所以在他们的本地机器上他们 运行 我的构建脚本:
msbuild MyProject.HelloWorld.proj
问题是它使用在 Windows 路径环境变量中列出的最高 MSBuild 版本构建。
我可以知道我们的构建日志使用了哪个版本的 MSBuild。
我尝试通过修改脚本以传递 Toolsversion 参数来指定 tools version:
msbuild /toolsversion:14.0 MyProject.HelloWorld.proj
但该项目是使用 MSBuild 版本 4.0 构建的,但无济于事。
我可以要求所有开发人员修改他们的环境路径变量的顺序,并将 C:\Program Files (x86)\MSBuild.0 放在顶部,然后使用 MSBuild 进行构建14,但我一直在寻找一种不那么突兀的方式来完成任务。
此外,还有其他项目需要使用旧版本的 MSBuild 构建,因此根据项目的不同,他们可能需要移动路径变量的顺序,我正在努力避免这种情况。
更改您的“.bat”脚本以调用特定的 msbuild.exe:
"C:\Program Files (x86)\MSBuild.0\Bin\msbuild.exe" MyProject.HelloWorld.proj
我有一个构建项目的 MSBUILD 脚本(.bat 文件)。我需要将在本地执行的 MSBuild 脚本(在提交回购之前)到与我们的构建管理和持续集成服务器匹配的特定版本的 MSBuild 上的 运行。 问题是当前已安装所有本地 Developer box:
C:\Windows\Microsoft.NET\Framework\v3.5
C:\Windows\Microsoft.NET\Framework\v4.0.30319
C:\Program Files (x86)\MSBuild.0
所以在他们的本地机器上他们 运行 我的构建脚本:
msbuild MyProject.HelloWorld.proj
问题是它使用在 Windows 路径环境变量中列出的最高 MSBuild 版本构建。
我可以知道我们的构建日志使用了哪个版本的 MSBuild。
我尝试通过修改脚本以传递 Toolsversion 参数来指定 tools version:
msbuild /toolsversion:14.0 MyProject.HelloWorld.proj
但该项目是使用 MSBuild 版本 4.0 构建的,但无济于事。
我可以要求所有开发人员修改他们的环境路径变量的顺序,并将 C:\Program Files (x86)\MSBuild.0 放在顶部,然后使用 MSBuild 进行构建14,但我一直在寻找一种不那么突兀的方式来完成任务。
此外,还有其他项目需要使用旧版本的 MSBuild 构建,因此根据项目的不同,他们可能需要移动路径变量的顺序,我正在努力避免这种情况。
更改您的“.bat”脚本以调用特定的 msbuild.exe:
"C:\Program Files (x86)\MSBuild.0\Bin\msbuild.exe" MyProject.HelloWorld.proj