W moim przypadku utworzyłem szablon T4 do zmiany wartości AssemblyVersion i AssemblyFileVersion. Nazwałem szablon Assembly.tt i utworzyłem plik połączony (gdy go dodasz, wybierz Dodaj link, zamiast Dodaj). Wszystkie moje złożenia pobierają połączony plik Assembly.tt.
Następnie można uruchomić szablon T4 z jednego miejsca i zaktualizuje on wszystkie AssemblyVersion i AssemblyFileVersions. Nie musisz wywoływać pliku AssemblyInfo.cs, aby pobrać informacje do bibliotek dll.
Kod dla pliku Assembly.tt jest:
<#@ 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;
#>
Wyjście szablonie T4 powyżej będą:
//
// 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")]
tak, że byłoby znacznie ** ** łatwiejsze! Ustaw numery wersji prosto w czasie kompilacji, np. korzystanie z serwera budowania ciągłej integracji –
To byłaby właściwa droga, zmieniając skompilowane pliki, rozbijając czystą linię informacyjną między kodem a plikami binarnymi. –
Dziękuję bardzo, podoba mi się pomysł udostępnienia pliku AssemblyInfo.cs! –