2008-09-22 20 views
8

Ich habe mehrere AssemblyInfo.cs-Dateien als Teil vieler Projekte in einer einzigen Lösung, die ich automatisch als Teil von TeamCity erstelle.Verwenden von AssemblyInfo zum automatischen Aktualisieren mehrerer AssemblyInfo.cs-Dateien

Um das Msbuild-Skript wartungsfreundlicher zu machen, möchte ich in der Lage sein, die AssemblyInfo Community-Aufgabe in Verbindung mit einer ItemGroup zu verwenden, z.

Das funktioniert blamiert nicht, da OutputFile keine referenzierte ItemGroup sein kann.

Wer weiß, wie das funktioniert?

Antwort

9

Versuchen Sie das @ auf einer% wie unten

<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)" /> 

Dies erzeugt einen Aufruf für jeden Eintrag in AllAssemblyInfos ändern.

Schauen Sie sich auch diesen Artikel an, sollte helfen.

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

+0

Genau das habe ich versucht zu erreichen, danke! –

+1

Kein Problem, ich habe das mit jedem Loop in NANT gemacht, es ist ein bisschen anders in MSBuild, aber es ist auch in vielerlei Hinsicht leistungsfähiger. Mach weiter so :-) – evilhomer

16

Wir verwenden "verknüpfte" Dateien im Projekt. Mappen-Explorer -> Add Existin Artikel -> .. select_file .. -> arrow_on_left_of_add_button -> A Link-

Dann wird die ausgewählte Datei (AssemblyInfo.cs vorerst) nicht auf das direcotry von Projekt kopiert, Knospe ist nur verlinkt vom angegebenen Pfad.

+0

Das ist eine interessante Idee, die ich von hadnt dachte! Könnte es geben, wenn ich keine Lösung durch MSBuild finden kann. Es wäre schön, herauszufinden, wie man eine ItemGroup auch für andere Zwecke aufzählt. –

+0

Ich mache das auch. Sie können auch eine assemblierungsspezifische .CS-Datei einschließen, die Ihrer durchschnittlichen Datei "assemblyinfo.cs" ähnelt, aber die assemblyspezifischen Bits enthält. – Will

+0

Ich habe das immer auch getan. Es funktioniert großartig. – caryden

Verwandte Themen