8

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 になれないため、これはあからさまに機能しません。

これを機能させる方法を知っている人はいますか?

4

2 に答える 2

16

プロジェクトでは「リンクされた」ファイルを使用します。ソリューション エクスプローラー -> 既存のアイテムを追加 -> .. select_file .. -> arrow_on_left_of_add_button -> リンクとして追加

次に、選択したファイル(今のところ AssemblyInfo.cs )はプロジェクトのディレクトリにコピーされず、指定されたパスからのみ芽がリンクされます。

于 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 に答える