Utilisation de AssemblyInfo pour mettre à jour automatiquement plusieurs fichiers AssemblyInfo.cs

StackOverflow https://stackoverflow.com/questions/116140

Question

J'ai plusieurs fichiers AssemblyInfo.cs dans le cadre de nombreux projets dans une solution unique que je construis automatiquement dans le cadre de TeamCity.

Pour rendre le script msbuild plus facile à gérer, j'aimerais pouvoir utiliser la tâche de communauté AssemblyInfo avec un élément ItemGroup, par exemple.

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

Ce qui ne fonctionne pas, car OutputFile ne peut pas être un ItemGroup référencé.

Quelqu'un sait comment faire ce travail?

Était-ce utile?

La solution

Essayez de changer le @ en% comme ci-dessous

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

Ceci crée un appel pour chaque entrée de AllAssemblyInfos.

Consultez également cet article, cela devrait vous aider.

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

Autres conseils

Nous utilisons " lié " fichiers dans le projet. Explorateur de solutions - > Ajouter un élément existant - > .. select_file .. - > arrow_on_left_of_add_button - > Ajouter comme lien

Ensuite, le fichier sélectionné (AssemblyInfo.cs pour le moment) n'est pas copié dans le répertoire du projet, le bourgeon n'est lié que par le chemin spécifié.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top