2012-05-04 96 views
0

我正在设置TFS 2010构建服务器。 但我目前的问题是,使用“自定义构建工具”的项目将无法构建,因为“无法访问”。TFS构建带有“自定义构建工具”项目的服务器

项目是C++。

自定义构建工具是“Pro*C”。基本上,你有一个* .pc文件,它会生成一个* .cpp文件。 但是在构建服务器上,目录/文件是只读的。所以它会在“无法访问”时崩溃。

我试图从TFS中删除* .cpp文件。这样生成的文件就不存在了。但显然该文件夹也是只读的,并且不允许创建新文件。

有没有人有这方面的解决方法?

回答

1

我建议的其中一个选项:

  • 不要把源代码控制的.cpp文件,如果它们被构建过程中产生
  • 更改为Pro的设置* C写的输出文件可写中间夹
  • 添加生成步骤,该问题文件复制到中间位置进行处理
  • 添加生成步骤,迫使这些文件的文件访问是可读的用于处理
  • 如果您只是偶尔需要构建这些文件,然后在您的开发人员计算机上使用Pro * C手动构建它们并检查结果,这样您就不会浪费时间不必要地重建每个桌面或构建服务器构建的不变文件。
1

有一个叫的MSBuild社区任务项目,可以从http://msbuildtasks.tigris.org/下载。我用它来做自己的tfs构建。 它为你的msbuild-project提供了几个扩展。其中之一就是所谓的属性任务,它使您可以更改项目中的文件(可能是文件夹)属性。它没有在网站的表格中列出,但它的文件记录在案。从他们的文档样本,可以将下面的行添加到您选择的目标:

<Attrib Files="Test\version.txt" ReadOnly="true" Hidden="true" System="true"/> 

我认为这也将一个项目组的工作方式如下

<Attrib Files="@(AllYourFiles)" ReadOnly="true" Hidden="true" System="true"/> 

如果你想要使用它,不要忘记将它安装在构建服务器上。 ;)

+0

我认为这正是我所需要的。但我不知道我需要如何使用它。我是否需要自己创建一个MSBuildTasks.proj,或者它是否存在? – Stinus

+0

TFS构建服务器2010不再使用proj文件(直接)(与之前的TFS构建服务器不同)。正如你已经发现的那样,它使用了构建模板,其中定义了所有的构建步骤。在DefaultTemplate中,其中一个步骤是msbuild的调用。通常,例如当创建一个VS2010项目时,你将拥有这样一个项目文件(使用vcxproj扩展名)。你将不得不在那里创建你自己的目标,并且在这个目标中你可以从上面放置命令。另一种解决方案可能是创建你自己的proj文件,并调整TFS构建模板来调用它。 – AquilaRapax

+0

你知道它是否与x64兼容?我得到它在我的开发机器上工作,(win xp x86)。但不在服务器上(win server 2k8 r2) – Stinus