在CI计算机上构建WCF库

本文关键字:WCF 构建 CI 计算机 | 更新日期: 2023-09-27 18:00:03

更新:

这只是一个更新,因为我们终于修复了许可证,并在我们的生成代理上安装了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.

项目配置''ECUWeb''ECUWeb.ServiceLib''ECUWeb.ServiceLib.csproj失败。

生成代理安装了visual studio 2010和.net4.5,但我在机器上使用的是VS2012。有没有我可以安装的SDK,或者我必须安装VS2012?此外,这是一个仅在解决方案文件上运行MSBuild的团队城市任务。

在CI计算机上构建WCF库

当CI环境没有"必需品"时,我找到了一些解决方案:

一:安装SDK(如前所述)。

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

此处的示例:在生成服务器上找不到Microsoft.WebApplication.targets。什么';你的解决方案是什么?

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

使用数据库项目的tfsbuild中出现生成错误

第四:每隔一段时间,微软就会把你搞砸。您唯一的选择就是安装成熟的Visual Studio。我讨厌它,因为CI机器不应该需要Visual Studio。

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

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

$(MSBuildExtensionsPath32)'Microsoft'VisualStudio'WCF'Microsoft.VisualStudio.ServiceModel.targets

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

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

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