2013-02-01 158 views
15

我我的CI服务器上获取此错误:WCF编译错误:未找到Microsoft.VisualStudio.ServiceModel.targets

错误MSB4019:导入项目“C:\ Program Files文件(86) \的MSBuild \微软\ VisualStudio的\ WCF \ Microsoft.VisualStudio.ServiceModel.targets”未找到

看来我该文件的WCF服务库项目引用,但Program Files\MSBuild\Microsoft的VisualStudio的文件夹不包含一个WCF文件夹。

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

我需要安装什么?

+0

安装microsoft windows SDK应该可行 - 对于windows server 2008链接是 - http://www.microsoft.com/en-us/download/details.aspx?id=11310 –

+0

@MilanRaval试过了,仍然是同样的错误 –

回答

26

那么这毁了我的早晨,但我们不要让它毁了别人的。我无法在其他地方找到这些信息。您需要使用VS Pro 2012从开发机器复制几个文件。

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

然后引用名为Microsoft.VisualStudio.ServiceModel.Core的程序集。您可以在GAC中找到该程序集,也可以在C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE的IDE目录中找到该程序集。

拷贝到你的CI服务器,并执行gacutil.exe -i Microsoft.VisualStudio.ServiceModel.Core.dll

这足以帮我。

这不是我第一次在我的CI服务器中找到从我的VS express安装中丢失的目标。我不禁感到,我可以从某个地方下载某种包装,这些包装可以满足所有这些需求。有谁知道这样的事情吗?如果没有,也许我们应该创建一个。

+1

您正在查找的软件包将是:[Visual Studio 2012 Update 4代理](http:// www .microsoft.com/zh-cn/download/details.aspx?id = 38186)或[Microsoft Build Tools 2013](http://www.microsoft.com/zh-CN/download/details.aspx?id=40760 ) 除此之外,这不会修复WCF库项目的目标。 –

+0

或[Microsoft Visual Studio 2013代理](http://www.microsoft.com/en-us/download/details.aspx?id=40750) 这些安装程序的安装很不清楚。 (它还在毁了我的早晨;我不愿意使用gacutil来安装这个库,因为这可能会毁了一个系统管理员的同事早上) –

+0

@RobertSirre您的意见不清楚:是否安装了上述“Agents for Microsoft Visual Studio 201X“套餐纠正了这个问题? – crush

1

跑进这个相同的问题。做了以下解决:

  1. 安装了Microsoft Web Platform Installer

  2. 复制的目录 “C:\ Program Files文件(x86)的\的MSBuild \微软\ VisualStudio的\ WCF” 从开发的笔记本电脑与Visual Studio 2012构建服务器

+1

我曾尝试将复制和WCF目标复制到CI服务器,但不起作用。 Web平台安装程序只是一个检索其他包的应用程序,但根本不处理WCF库或任何SDK库。 – Maverick

+0

您需要将其添加到GAC'gacutil.exe -i Microsoft.VisualStudio.ServiceModel.Core.dll' – aphexddb

3

提取this文件夹到

C:\ Program Files文件(x86)的\的MSBuild \微软\ VisualStudio的\ WCF

的文件名是 “Microsoft.VisualStudio.ServiceModel.targets”

1

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

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

1

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

中的.csproj文件中的特定行从

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

改变要

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

我就遇到了这个与Visual Studio 2017年,对我来说,分辨率为修改我安装的Visual Studio包括Windows Communication Foundation组件。

+0

事情是,理想情况下,CI服务器应该有它的MSBuild;但不应该需要Visual Studio本身。 – Richardissimo