【问题标题】:WCF compilation error on CI server: Microsoft.VisualStudio.ServiceModel.targets not foundCI 服务器上的 WCF 编译错误:找不到 Microsoft.VisualStudio.ServiceModel.targets
【发布时间】:2019-11-14 17:01:10
【问题描述】:

我的 CI 服务器上出现此错误:

错误 MSB4019:找不到导入的项目“C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\WCF\Microsoft.VisualStudio.ServiceModel.targets”

我的 WCF 服务库项目似乎引用了该文件,但 Program Files\MSBuild\Microsoft 上的 VisualStudio 文件夹不包含 WCF 文件夹。

我想我需要在服务器上安装一些东西。

我需要安装什么?

【问题讨论】:

标签: wcf visual-studio-2012 continuous-integration


【解决方案1】:

好吧,这毁了我的早晨,但我们不要让它毁了其他人的。我在其他任何地方都找不到这些信息。您需要使用 VS Pro 2012 从开发机器中复制一些文件。

正如 aphexddb 所述,您需要将一些目标从 C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\WCF 复制到 CI 服务器上的相同位置。

这随后引用了一个名为 Microsoft.VisualStudio.ServiceModel.Core 的程序集。您可以在 GAC 或 IDE 目录C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE 中找到此程序集。

将此复制到您的 CI 服务器并执行 gacutil.exe -i Microsoft.VisualStudio.ServiceModel.Core.dll

这对我来说已经足够了。

这不是我第一次在我的 CI 服务器中发现我的 VS express 安装中缺少目标。我不禁觉得我可以从某个地方下载某种包来填充所有这些内容。有人知道这样的事情吗?如果没有,也许我们应该创建一个。

【讨论】:

  • 您要查找的包是:Agents for Visual Studio 2012 Update 4Microsoft Build Tools 2013 除了这不会修复 WCF 库项目的目标。
  • Agents for Microsoft Visual Studio 2013 这些安装程序安装了什么还不清楚。 (它仍然在破坏我的早晨;我犹豫是否使用 gacutil 安装库,因为这可能会破坏未来系统管理员的早晨)
  • @RobertSirre 您的 cmets 不清楚:安装上述“Microsoft Visual Studio 201X 代理”软件包是否解决了问题?
  • 这在 Build Tools 2015 Update 3 安装中仍然存在问题。 connect.microsoft.com/VisualStudio/feedback/details/3103264/…
  • VS2017 还是同样的问题;虽然 MSBuild 位置现在不同了。我的是C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\Microsoft\VisualStudio\v15.0\WCF(但“专业”因不同口味而异)。只是复制文件对我有用,我不需要 GAC 任何东西。
【解决方案2】:

在 vs2019 上仍然可以发生

错误 MSB4019:导入的项目“C:\Program Files (x86)\Microsoft 视觉的 Studio\2019\Professional\MSBuild\Microsoft\VisualStudio\v16.0\WCF\Microsoft.VisualStudio.ServiceModel.targets" 没找到。确认声明中的路径是 正确,并且该文件存在于磁盘上。

默认情况下,WCF 不作为“ASP.NET 和 Web 开发”工作负载的一部分安装。为了解决这个问题,

在 Visual Studio 安装程序 > 修改 > 单个组件选项卡上,搜索 wcf,检查、修改 - .targets 文件现已安装,msbuild 构建正常。

MSBuild 自动检测:使用来自“C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\MSBuild\Current\bin”的 msbuild 版本“16.3.2.50909”

【讨论】:

  • 这是我在 VS 2019 中遇到的问题,这个答案解决了这个问题。
  • 这也解决了我的问题
【解决方案3】:

我在使用 Visual Studio 2017 时遇到了这个问题,对我来说,解决方案是修改我的 Visual Studio 安装以包含 Windows Communication Foundation 组件。

【讨论】:

  • 问题是,理想情况下,CI 服务器应该有 MSBuild;但不应该需要 Visual Studio 本身。
【解决方案4】:

this文件解压到文件夹中

C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\WCF

文件名为“Microsoft.VisualStudio.ServiceModel.targets”

【讨论】:

    【解决方案5】:

    遇到了同样的问题。解决了以下问题:

    1. 安装了微软Web Platform Installer

    2. 将目录“C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\WCF”从装有 Visual Studio 2012 的开发笔记本电脑复制到构建服务器

    【讨论】:

    • 我确实尝试将 WCF 目标复制到 CI 服务器但不起作用。 Web 平台安装程序只是一个检索其他包的应用程序,但根本不处理 WCF 库或任何 SDK 库。
    • 您需要将其添加到 GAC gacutil.exe -i Microsoft.VisualStudio.ServiceModel.Core.dll
    【解决方案6】:

    我遇到了同样的错误 - 我的问题是 MS 修改了 MSBuild 在构建过程模板中查找 VS 版本的方式。

    确保使用正确的构建过程模板。 如果使用 TFS2013 和 VS2013 使用 TfvcTemplate.12.xaml

    【讨论】:

      【解决方案7】:

      我遇到了同样的错误。就我而言,问题是我的 Visual Studio 2008 项目没有正确升级,可能是由于我的源代码管理将文件标记为“只读”。为了解决这个问题,我在 Visual Studio 2015 中加载了解决方案,并检查了所有内容。

      .csproj 文件中的特定行从

      更改
      <Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\WCF\Microsoft.VisualStudio.ServiceModel.targets" />
      

      <Import Project="$(WcfServiceModelTargetPath)\Microsoft.VisualStudio.ServiceModel.targets" />
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-02-28
        • 1970-01-01
        • 2016-02-08
        • 2015-07-27
        • 2021-12-19
        • 1970-01-01
        • 2015-09-11
        • 2014-07-01
        相关资源
        最近更新 更多