C# 如何使项目同时使用v15.0和v15.9构建工具?

C# 如何使项目同时使用v15.0和v15.9构建工具?,c#,msbuild,visual-studio-2017,visual-studio-2017-build-tools,C#,Msbuild,Visual Studio 2017,Visual Studio 2017 Build Tools,我们有两个构建服务器,一个新创建的项目决定只在其中一个服务器上成功构建。它在发生故障的生成服务器上出现以下错误: MyLovelyNewProject.csproj(380,11):错误MSB4226:未找到导入的项目“C:\Program Files(x86)\Microsoft Visual Studio\2017\BuildTools\MSBuild\Microsoft\VisualStudio\v15.0\WebApplications\Microsoft.WebApplication.

我们有两个构建服务器,一个新创建的项目决定只在其中一个服务器上成功构建。它在发生故障的生成服务器上出现以下错误:

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同步构建服务器,使其具有相同版本的构建工具,我同意!唉,他们正忙于一个主要的服务器迁移,我希望新项目在着手进行CI时不会有50%的几率失败。)

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

您可以尝试以下步骤:

1)尝试打开
vs\u安装程序
,单击修改

并且选择要安装的Web开发构建工具工作负载,另外,如果您有asp net core Web项目,请不要忘记安装.net core构建工具工作负载

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

2)如果没有帮助,请单击修复获取构建工具V15.9以修复它


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

您可以尝试以下步骤:

1)尝试打开
vs\u安装程序
,单击修改

并且选择要安装的Web开发构建工具工作负载,另外,如果您有asp net core Web项目,请不要忘记安装.net core构建工具工作负载

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

2)如果没有帮助,请单击修复获取构建工具V15.9以修复它


也许下面的帖子会有帮助:嗨,健忘,有关于这个问题的更新吗?@PerryQian MSFT Hi Perry,我不管理构建服务器,但我把你的建议传递给了DevOps,他们认为这听起来不错,如果时间允许,会在接下来的几天内尝试。@Oblivoussage,好的。希望你有任何反馈:)@ObliviousSage,有关于这个问题的更新吗?也许下面的帖子会有帮助:嗨Oblivious,有关于这个问题的更新吗?@PerryQian MSFT Hi Perry,我不管理构建服务器,但我将您的建议传递给了DevOps,他们认为这听起来不错,并将在未来几天内在时间允许的情况下进行尝试。@Oblivoussage,嗯。希望您有任何反馈:)@ObliviousSage,有关于这个问题的更新吗?