В моем случае я создал шаблон T4 для изменения AssemblyVersion и AssemblyFileVersion. Я вызвал шаблон Assembly.tt и сделал его связанным файлом (когда вы добавляете его, выберите Add Link, а не Add). Все мои сборки втянуты в связанный файл Assembly.tt.
Затем вы можете запустить шаблон T4 из одного места и обновить все AssemblyVersion и AssemblyFileVersions. Вам не нужно вызывать файл AssemblyInfo.cs для информации, которую нужно вставить в ваши DLL.
Код для файла Assembly.tt является:
<#@ 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;
#>
Выход шаблона T4 выше:
//
// 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")]
да, это было бы гораздо ** ** проще! Установите номера версий прямо во время сборки, например. используя сервер построения непрерывной интеграции –
Это будет правильный путь, изменение скомпилированных файлов прерывает чистую информационную строку между кодом и двоичными файлами. –
Большое спасибо, мне нравится идея совместного использования файла AssemblyInfo.cs! –