8

我有几个 AssemblyInfo.cs 文件作为单个解决方案中许多项目的一部分,我作为 TeamCity 的一部分自动构建。

为了使 msbuild 脚本更易于维护,我希望能够将 AssemblyInfo 社区任务与 ItemGroup 结合使用,例如

<ItemGroup>
     <AllAssemblyInfos Include="..\**\AssemblyInfo.cs" />
</ItemGroup>

<AssemblyInfo AssemblyTitle="" AssemblyProduct="$(Product)" AssemblyCompany="$(Company)" AssemblyCopyright="$(Copyright)" 
                  ComVisible="false" CLSCompliant="false" CodeLanguage="CS" AssemblyDescription="$(Revision)$(BranchName)" 
                  AssemblyVersion="$(FullVersion)" AssemblyFileVersion="$(FullVersion)" OutputFile="@(AllAssemblyInfos)" />

这显然不起作用,因为 OutputFile 不能是引用的 ItemGroup。

任何人都知道如何使这项工作?

4

2 回答 2

16

我们在项目中使用“链接”文件。解决方案资源管理器 -> 添加 Existin 项 -> .. select_file .. -> arrow_on_left_of_add_button -> 添加为链接

然后选择的文件(现在是 AssemblyInfo.cs )不会复制到项目的目录中,bud 仅从指定的路径链接。

于 2008-09-22T17:14:52.640 回答
9

尝试将 @ 更改为 % 如下

<ItemGroup>
 <AllAssemblyInfos Include="..\**\AssemblyInfo.cs" />
</ItemGroup>

<AssemblyInfo AssemblyTitle="" AssemblyProduct="$(Product)" AssemblyCompany="$(Company)" AssemblyCopyright="$(Copyright)" 
                              ComVisible="false" CLSCompliant="false" CodeLanguage="CS" AssemblyDescription="$(Revision)$(BranchName)" 
                              AssemblyVersion="$(FullVersion)" AssemblyFileVersion="$(FullVersion)" OutputFile="%(AllAssemblyInfos)" />

这会为 AllAssemblyInfos 中的每个条目创建一个调用。

也看看这篇文章,应该会有所帮助。

http://blogs.msdn.com/aaronhallberg/archive/2006/09/05/msbuild-batching-generating-a-cross-product.aspx

于 2008-09-22T17:28:49.440 回答