Laden...

AssemblyMetadata - Einbetten der Build-Time in Assemblies

Erstellt von Abt vor 2 Jahren Letzter Beitrag vor 2 Jahren 1.369 Views
Abt Themenstarter:in
16.834 Beiträge seit 2008
vor 2 Jahren
AssemblyMetadata - Einbetten der Build-Time in Assemblies

Wir haben seit einiger Zeit im Footer die genaue Uhrzeit stehen, wann der Quellcode von myCSharp.de erzeugt wurde.
Da ich angeschrieben wurde, wie wir das gemacht haben; hier einfach die Information dazu:

Wir verwenden Source Code Generators, die während der Compile-Time ausgeführt werden, und so beliebigen Quellcode statisch erzeugen.
Diese wurden mit .NET 5 eingeführt. Quellcode-Generatoren

Der Quellcode, den wir für die Build Time verwenden, ist sehr simpel und hier zu finden:
GitHub - BenjaminAbt/AssemblyMetadata: Small sample how to use Source Code Generators in .NET

Anschließend können die statisch erzeugen Klassen (oder andere Dinge) einfach wie jeder andere Abhängigkeit auch verwendet werden.


// Razor View
@using BenjaminAbt.AssemblyMetadata;
@{
    DateTimeOffset builtOn = DateTimeOffset.FromFileTime(AssemblyMetadataInfo.BuildInfo.BuildFileTimeUtc);
}


<footer class="footer">
    <div>
        Entwickelt mit ♥ und ASP.NET Core. Version @(ThisAssembly.AssemblyInformationalVersion) vom
                <mycs-user-time value="@(builtOn)" format="dd.MM.yyyy - HH:mm" /> Uhr.
<!-- Die mycs-user-time Komponente lokalisiert automatisch die Uhrzeit anhand der Uhrzeit des Besuchers -->

Die weiteren Informationen im Footer kommen aus https://github.com/dotnet/Nerdbank.GitVersioning