Utilisation de AssemblyInfo pour mettre à jour automatiquement plusieurs fichiers AssemblyInfo.cs
-
02-07-2019 - |
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?
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.
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é.