【问题标题】:How can I make my project work with both v15.0 and v15.9 build tools?如何使我的项目同时使用 v15.0 和 v15.9 构建工具?
【发布时间】:2021-02-02 22:30:38
【问题描述】:

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

MyLovelyNewProject.csproj(380,11):错误 MSB4226:导入的项目“C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\MSBuild\Microsoft\VisualStudio\v15.0\WebApplications\Microsoft. WebApplication.targets”没有找到。此外,尝试在 $(VSToolsPath) 的后备搜索路径中找到 "WebApplications\Microsoft.WebApplication.targets" - "C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v15.0" 。这些搜索路径在“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 中失败。)

【问题讨论】:

  • 也许以下帖子会有所帮助:stackoverflow.com/questions/44061932/…
  • 嗨 Oblivious,有关于这个问题的更新吗?
  • @PerryQian-MSFT 您好 Perry,我不管理构建服务器,但我将您的建议转交给了 DevOps,他们认为这听起来不错,并会在接下来的几天内在时间允许的情况下进行尝试。
  • @ObliviousSage,好吧。希望您的任何反馈:)
  • @ObliviousSage,有关于这个问题的更新吗?

标签: c# msbuild visual-studio-2017 visual-studio-2017-build-tools


【解决方案1】:

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

您可以尝试以下步骤:

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

并且选择Web开发构建工具工作负载来安装,另外,如果你有一个asp net core web项目,别忘了安装.Net Core构建工具工作负载.

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

2)如果还是不行,请点击Repair for Build Tool V15.9进行修复。

【讨论】:

    猜你喜欢
    • 2020-09-18
    • 1970-01-01
    • 2010-09-17
    • 1970-01-01
    • 2012-03-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-25
    相关资源
    最近更新 更多