如何让我的项目同时使用 v15.0 和 v15.9 构建工具?

问题描述

我们有两个构建服务器,一个新创建的项目决定只希望在其中一个上成功构建。它在失败的构建服务器上给出了这个错误

MylovelyNewProject.csproj(380,11):错误 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\amd64\MSBuild.exe.Config”中定义。确认声明中的路径正确,并且该文件存在于磁盘上的搜索路径之一中。

我们的 DevOps 人员调查并确定一台服务器具有 v15.0 构建工具,其中一台具有 v15.9 构建工具。新项目无法在具有 v15.9 构建工具的服务器上构建,因为它专门寻找 v15.0 构建工具。

我们所有其他项目在两个构建服务器上都构建得很好,但我无法在他们的 .sln 或 .csproj 文件中找到与新项目不同的任何内容如何重新定位/重新配置新项目,以便无论给定服务器具有哪个版本的构建工具,它都能成功构建?

(如果你想建议 DevOps 同步构建服务器以拥有相同版本的构建工具,我同意!唉,他们正忙于大型服务器迁移,我希望新项目没有有 50% 的机会在 CI 中失败,而他们正在着手处理。)

解决方法

我认为该问题与 Build Tool v15.9 而不是您的项目有关。在该服务器上,您没有在 V15.9 Build Tool 上安装 Web 项目的构建工作负载,因此它无法指定 Web 项目并且缺乏构建 Web 项目的能力。或者,构建工具由于某些原因损坏。

您可以尝试以下步骤:

1)尝试打开vs_installer,点击修改

enter image description here

并且选择Web development build tools工作量来安装,另外,如果你有一个asp net core web项目,不要忘记安装.Net Core build tools工作量.

enter image description here

enter image description here

为了确保这一点,我移除了网络开发构建工具工作负载,并为网络项目解决了同样的问题。

enter image description here

2)如果没有帮助,请点击修复Build Tool V15.9进行修复。

enter image description here