0

我正在设置一个 TFS 2010 Build 服务器。但是我目前遇到的问题是由于“无法访问”而无法构建具有“自定义构建工具”的项目。

这些项目是 C++。

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

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

有没有人有解决方法?

4

2 回答 2

1

有一个名为MSBuild Community Tasks的项目,可以从http://msbuildtasks.tigris.org/下载。我将它用于我自己的自动化 tfs-build。它为您的 msbuild-project 提供了几个扩展。其中之一是所谓的Attrib任务,它使您有机会从项目中更改文件(可能还有文件夹)属性。它没有列在网站的表格中,但记录在他们的文档中。作为他们文档中的示例,您可以将以下行添加到您选择的目标中:

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

我认为这也适用于以下项目组

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

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

于 2012-05-04T12:47:17.940 回答
1

我会建议以下选项之一:

  • 如果 .cpp 文件是由构建过程生成的,请不要将它们放在源代码管理中
  • 更改 Pro*C 的设置以将其输出文件写入可写中间文件夹
  • 添加一个构建步骤,将问题文件复制到中间位置进行处理
  • 添加一个构建步骤,强制对这些文件的文件访问权限可读取以进行处理
  • 如果您只需要偶尔构建这些文件,那么在您的开发人员机器上使用 Pro*C 手动构建它们并检查结果,这样您就不会浪费时间在每次桌面或构建服务器构建时不必要地重新构建不变的文件。
于 2012-05-04T11:56:39.243 回答