我刚刚设置了一个TFS(2012)服务器,现在我试图通过TFS Build服务器构建完整的代码(在VS 2010中以.NET 4.0编写)。但是在我的解决方案中,我还有一个WCF RIA项目,其中包含链接文件,因为它们也在其他地方使用,并且不可能在WCF/Silverlight中添加对通用.NET二进制文件的引用。
一切在我的开发机器上都可以顺利构建,但是当我全部检查完之后,创建一个标准的构建定义并运行该构建定义,就会遇到以下问题。链接文件的usings
(例如,UsingNamespace)指向其他项目,这些项目也是由我们构建并在WCF/Silverlight之前构建的,但是在通过TFS Build服务器进行构建时会弹出以下错误:
我看过的这个问题有什么解决方案吗?
编辑1
只是尝试将链接文件的Copy to Output Directory
属性设置为Copy Always
,但这仍然给我与我期望的相同的错误。问题是链接文件放置在可以使用usings
的位置,但是WCF RIA服务无法访问/查找该使用位置。
编辑2
刚刚尝试了我的本地测试TFS,在这里我可以做我想做的事,在那里我定义了构建定义,其中仅包含了使带有链接文件的项目构建所需的解决方案。这没有任何问题。然后,我使用新的构建定义在TFS服务器上尝试了相同的解决方案,该定义具有与测试TFS相同的解决方案,但是在这里它不起作用。我唯一确定的区别是我的测试TFS是TFS 2012 Update 1,而我的生产TFS还没有Update 1。下周我将尝试安装。
编辑3
我刚刚将生产TFS更新为Update 1,但仍无法使用我的临时构建定义,该定义仅包含使用链接文件构建silverlight应用程序所需的项目。两个服务器上的两个工作空间相同,并且要构建的项目也相同。
最佳答案
您需要在“构建定义”中指定工作区信息以供构建使用。工作区是构建过程从源代码控制复制到构建服务器的内容。如果构建服务器的工作空间中没有所有内容,则无法正确构建。
工作区选项卡中的“源代码管理文件夹”是您需要从TFS中获取文件的位置。 Build Agent文件夹是从构建服务器的预定义基本位置开始的相对路径。通常,您将使用$(SourceDir)\Folder来指定构建过程所需的“文件夹”。
关于tfs - WCF RIA服务中的链接文件未在TFS Build中构建,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14731314/