使用MSBuild 15.0构建BuildMaster

时间:2017-07-12 17:02:31

标签: msbuild buildmaster

如何在服务器上定位MSBuild 15.0?我在服务器上安装了15.0,但我的项目仍在使用14.0构建。我知道Microsoft已对目录位置进行了一些更改,并且不再使用15.0的注册表值。

我发现在以下位置安装了15.0:
C:\ Program Files(x86)\ MSBuild \ 15.0
C:\ Program Files(x86)\ Microsoft Visual Studio \ 2017 \ BuildTools \ MSBuild

我在这里安装了.Net framework 4.6.2: “C:\的Windows \ Microsoft.NET \ Framework64 \ v4.0.30319”

谢谢!

产品:BuildMaster
版本:5.7.2



更新1:

响应@ emiel-koning,我尝试使用以下命令在构建步骤中指定$ MSBuildToolsPath:

set $MSBuildToolsPath = C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\MSBuild\15.0\Bin;

但是我得到了这个错误:
错误MSB4226:找不到导入的项目“C:\ Program Files(x86)\ Microsoft Visual Studio \ 2017 \ BuildTools \ MSBuild \ Microsoft \ VisualStudio \ v15.0 \ WebApplications \ Microsoft.WebApplication.targets”。此外,尝试在$(VSToolsPath) - “C:\ Program Files(x86)\ MSBuild \ Microsoft \ VisualStudio \ v15.0”的后备搜索路径中找到“WebApplications \ Microsoft.WebApplication.targets”。这些搜索路径在“C:\ Program Files(x86)\ Microsoft Visual Studio \ 2017 \ BuildTools \ MSBuild \ 15.0 \ Bin \ msbuild.exe.Config”中定义。确认声明中的路径是正确的,并且该文件存在于其中一个搜索路径的磁盘上。

更新2:

我可能遗漏了构建服务器上安装的内容吗?我安装了Visual Studio Build Tools,它给了我MSBuild 15.0但不是上面错误中的WebApplication.targets文件




我还通过安装“Web开发构建工具”组件来解决我的问题。我还在服务器级别设置$ MSBuildToolsPath,直到我可以全局推出新的MSBuild。 enter image description here

2 个答案:

答案 0 :(得分:1)

通常,这由项目文件的ToolsVersion属性处理。如果未指定以下配置,则应使用此选项。

具体来说,在BuildMaster中,您可以在“管理”>上覆盖每个服务器的此值。 BuildMaster Extensions> Windows SDK>配置选项卡。点击$MSBuildToolsPath(并可选择覆盖特定范围),其值为C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\MSBuild\15.0\Bin

对更新#1&的回应#2:

首先,不要在计划本身中设置该变量(否则您必须在每个计划中设置它)。按照我上面描述的方式设置它。就个人而言,我总是在服务器级别指定其值,因为每个服务器可能将它安装在不同的位置。

对于Microsoft.WebApplication.targets,我认为构建Web应用程序项目唯一受支持的方法是在构建服务器上安装Visual Studio;虽然在过去我只是将我的本地安装(C:\ Program Files(x86)\ MSBuild \ Microsoft \ VisualStudio \ v14.0 \ WebApplications)中的目标复制到MSBuild期望它们的路径中。

答案 1 :(得分:1)

您可以使用$MSBuildToolsPath指定MSBuild的正确路径吗?