Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在CI机上构建WCF库_C#_Visual Studio 2010_Wcf_Msbuild_Visual Studio 2012 - Fatal编程技术网

C# 在CI机上构建WCF库

C# 在CI机上构建WCF库,c#,visual-studio-2010,wcf,msbuild,visual-studio-2012,C#,Visual Studio 2010,Wcf,Msbuild,Visual Studio 2012,更新: 这只是一个更新,因为我们最终修复了许可,并在构建代理上安装了Visual Studio 2012。我们一完成安装,一切都完美地完成了 谢谢大家的回答和帮助。我接受的答案将这个选项列为第四个尝试的选项,我们尝试了所有其他的方法,这就是它的全部构建 帮助当我尝试在Windows Server 2008 R2生成计算机上生成WCF库项目时,出现以下错误: C:\BuildAgent\work\e8ce1d5b0f26c529\Configuration\ECUWeb\EcuWeb.Servic

更新:

这只是一个更新,因为我们最终修复了许可,并在构建代理上安装了Visual Studio 2012。我们一完成安装,一切都完美地完成了

谢谢大家的回答和帮助。我接受的答案将这个选项列为第四个尝试的选项,我们尝试了所有其他的方法,这就是它的全部构建

帮助当我尝试在Windows Server 2008 R2生成计算机上生成WCF库项目时,出现以下错误:

C:\BuildAgent\work\e8ce1d5b0f26c529\Configuration\ECUWeb\EcuWeb.ServiceLib\EcuWeb.ServiceLib.csproj(90, 3): error MSB4019: The imported project "C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\WCF\Microsoft.VisualStudio.ServiceModel.targets" was not found. Confirm that the path in the <Import> declaration is correct, and that the file exists on disk.
C:\BuildAgent\work\e8ce1d5b0f26c529\Configuration\ECUWeb\ECUWeb.ServiceLib\ECUWeb.ServiceLib.csproj(90,3):错误MSB4019:找不到导入的项目“C:\Program Files(x86)\MSBuild\Microsoft\VisualStudio\WCF\Microsoft.VisualStudio.ServiceModel.targets”。确认声明中的路径正确,并且文件存在于磁盘上。
计划 配置\ECUWeb\ECUWeb.ServiceLib\ECUWeb.ServiceLib.csproj 失败了


生成代理安装了visual studio 2010和.net4.5,但我在计算机上使用的是VS2012。我是否可以安装SDK或必须安装VS2012?另外,这是一个teamcity任务,它只在解决方案文件上运行MSBuild。

当CI环境没有“必要”时,我发现了一些解决方案:

一:安装SDK(如前所述)

第二:每隔一段时间,您可以从安装了VS20xx的机器上手动复制“.targets”文件。这实际上是一个很好的场景,因为它很容易修复

示例如下:

第三:类似于SDK安装的东西。这里或那里有一个额外的包裹。 以下是一个例子:


第四:微软时不时地会欺骗你。你唯一的办法就是安装成熟的VisualStudio。我讨厌它,因为CI机器不应该需要Visual Studio。

需要检查的一件事是确定是否需要引用

我有一个2012年的解决方案,其中有一个.csproj文件,其中引用了Microsoft.VisualStudio.ServiceModel.targets。我从VS 2012升级到VS 2013。我有两台机器,我称之为台式机和笔记本电脑。桌面上有VS2012,我也在上面安装了VS2013。因此,存在以下文件,并且我能够编译我的解决方案:

$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\WCF\Microsoft.VisualStudio.ServiceModel.targets
在笔记本电脑上,我没有VS2012。我从头开始安装2013,并试图让我的解决方案(在TFS源代码管理下)正常工作。我收到了上述错误(VisualStudio.ServiceModel.targets不存在…请验证声明是否正确)

事实证明,我甚至不需要这个文件——在桌面上的.csproj文件中,我只是注释掉了元素,然后成功地重新编译了解决方案(包括通过了单元测试)。所以我从桌面将其签入TFS,在笔记本电脑上获得最新代码,并在那里编译(并通过单元测试):

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


是否已检查生成代理中是否存在错误中指定的以下文件?C:\Program Files(x86)\MSBuild\Microsoft\VisualStudio\WCF\Microsoft.VisualStudio.ServiceModel.targetsYes,我已检查,WCF文件夹甚至不存在。我在SO本身中发现了类似的问题。但这并没有得到回答。在那篇文章中,有人建议安装WindowsSDK来解决这个问题。这似乎并不能解决问题。因此,我希望您可能需要自行安装Visual Studio 2012,否则我们将等待任何人给出更好的答案。我不喜欢在构建服务器上安装VS,但我想每个人都有自己的答案。我不能说“这是错的”,但我只是想非常清楚我的所有依赖dll。@granadaCoder是的,我们必须在生成计算机上安装VS2012才能正常工作。除了安装VS2012,我已经尝试了所有方法,所以这是我的下一站。所以你尝试复制“C:\Program Files(x86)\MSBuild\Microsoft\VisualStudio\WCF*”从安装了VS的机器到构建机器?是的,然后它找不到System.ServiceModel.Core程序集。您是唯一的开发人员吗?因为这很奇怪。该项目如何引用从未存在过的东西?另外,开发机器和构建机器都是x64机器吗?比如,一个不是32位,是吗?不,我不是唯一的开发者,但我们是第一个使用.Net4.5和WCF的团队。我们目前使用TeamCity进行CI,在我添加WCF项目之前,我们没有构建问题。是的,构建机器是x64,我的工作站也是。但是我有vs2012,而构建代理只有VS2010,之后才安装了.Net4.5。我会试试。谢谢