Dans mon cas, j'ai créé un modèle T4 pour modifier AssemblyVersion et AssemblyFileVersion. J'ai appelé le modèle Assembly.tt et lui ai fait un fichier lié (lorsque vous l'ajoutez, choisissez Ajouter un lien, au lieu de Ajouter). Tous mes assemblages tirent dans le fichier Assembly.tt lié.
Vous pouvez ensuite exécuter le modèle T4 à partir d'un emplacement et mettre à jour toutes les valeurs AssemblyVersion et AssemblyFileVersions. Vous n'avez pas besoin d'appeler le fichier AssemblyInfo.cs pour que les informations soient tirées dans vos DLL.
Le code pour le fichier Assembly.tt est:
<#@ template language="C#" hostspecific="true" #>
//
// This code was generated by a tool. Any changes made manually will be lost
// the next time this code is regenerated.
//
using System.Reflection;
[assembly: AssemblyVersion("4.<#= this.RevisionYear #>.<#= this.RevisionNumber #>.<#= this.RevisionTime #>")]
[assembly: AssemblyFileVersion("4.<#= this.RevisionYear #>.<#= this.RevisionNumber #>.<#= this.RevisionTime #>")]
<#+
int RevisionYear = DateTime.UtcNow.Year;
int RevisionNumber = (int)(DateTime.UtcNow - new DateTime(DateTime.UtcNow.Year,1,1)).TotalDays;
int RevisionTime = (int)(DateTime.UtcNow - new DateTime(DateTime.UtcNow.Year, DateTime.UtcNow.Month, DateTime.UtcNow.Day)).TotalMinutes;
#>
La sortie du modèle T4 ci-dessus sera:
//
// This code was generated by a tool. Any changes made manually will be lost
// the next time this code is regenerated.
//
using System.Reflection;
[assembly: AssemblyVersion("4.2016.284.1066")]
[assembly: AssemblyFileVersion("4.2016.284.1066")]
oui, ce serait beaucoup plus ** ** plus facile! Définissez les numéros de version directement au moment de la construction, par ex. en utilisant un serveur de construction d'intégration continue –
Ce serait la bonne façon, en changeant les fichiers compilés casser la ligne d'information propre entre le code et les binaires. –
Merci beaucoup, j'aime bien l'idée de partager le fichier AssemblyInfo.cs! –