使用AssemblyInfo自动更新多个AssemblyInfo.cs文件
时间:2020-03-06 14:33:05 来源:igfitidea点击:
在作为TeamCity的一部分自动构建的单个解决方案中,我有多个AssemblyInfo.cs文件作为许多项目的一部分。
为了使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,因此这显然无法正常工作。
有人知道如何进行这项工作吗?
解决方案
我们在项目中使用"链接"文件。
解决方案资源管理器->添加现有项-> ..选择文件..-> arrow_on_left_of_add_button->添加为链接
然后,所选文件(现在为AssemblyInfo.cs)不会复制到项目目录中,仅从指定路径链接bud。
尝试如下将@更改为%
<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