2011-08-17 62 views
1

我有一个自定义的MSBuild脚本(例如WpfResources.proj),其中我通过多个文件夹扫描* .resx文件和构建.NET卫星资源dll使用AL任务。此WpfResources.proj的输出包含多个* .resources.dll在不同的文件夹下(对应于需要这些资源dll的不同项目)。TFS 2010 build不能处理在多个目录中生成多个文件的自定义MSBuild脚本

示例输出文件夹结构显示如下:

WpfResources

Bin 
    Project1 
     zh-CN 
     Project1.resources.dll 
     es-ES 
     Project1.resources.dll 

...

Project2 
     zh-CN 
      Project2.resources.dll 
     es-ES 
      Project2.resources.dll 

...

这WpfResources.proj可建正确由MSBuild.exe。但是,如果我在TFS 2010版本中运行它(即创建一个构建定义并引用WpfResources.proj来构建),则无法将所有这些资源DLL复制到放置位置。实际上它没有输出任何东西,即使在实际的编译PC上,输出也没有问题。

TFS 2010如何构建处理在多个文件夹下输出多个文件的自定义MSBuild脚本?在我的WpfResources.proj中,Team build会将其视为此MSBuild项目的输出吗?

回答

2

在构建系统上,TFS处理二进制输出目录并将其输出复制到drop文件夹中有点特别。它为所有输出文件生成一个中央输出目录。

我会想象你的MSBuild项目的输出标准方式,就好像它在开发系统上一样,输出仓位在项目文件夹结构下。 TFS不会将它们复制到drop文件夹,因为默认情况下,它仅复制它在中央输出文件夹下生成的二进制文件。

对于我们的系统,我们解决了这个问题(也适用于构建VS安装项目),但在构建模板中嵌入了手动复制操作,将MSBuild输出复制到集中式bin输出文件夹,放置文件夹位置。

要添加此类自定义操作,请参阅Ewald Hofman的精美TFS2010自定义博客:http://www.ewaldhofman.nl/post/2010/04/29/Customize-Team-Build-2010-e28093-Part-4-Create-your-own-activity.aspx

希望有所帮助。

+0

我们也采取了这种自定义复制行动。感谢您的确认和解释。 – jhy

相关问题