Używanie atrybutów AssemblyVersion i AssemblyFileVersion

W tym artykule przedstawiono sposób używania AssemblyVersion atrybutów i AssemblyFileVersion w pliku AssemblyInfo.cs.

Oryginalna wersja produktu: .NET Framework
Oryginalny numer KB: 556041

Podsumowanie

AssemblyInfo.cs udostępnia dwa atrybuty do definiowania różnych typów numerów wersji. W tym artykule wyjaśniono, jak efektywnie używać tych atrybutów.

Program Microsoft .NET Framework umożliwia ustawienie dwóch różnych typów numerów wersji na każdy zestaw.

AssemblyVersion

AssemblyVersion to numer wersji używany przez platformę podczas kompilacji i w czasie wykonywania do lokalizowania, łączenia i ładowania zestawów. Po dodaniu odwołania do zestawu w projekcie, numer wersji zostaje z nim powiązany. W czasie wykonywania środowisko uruchomieniowe języka wspólnego (CLR) używa tego numeru wersji do załadowania assembly.

Uwaga: ta wersja jest używana wraz z nazwą zestawu, tokenem klucza publicznego i informacjami o kulturze tylko wtedy, gdy zestaw ma silną nazwę (podpisany). Jeśli zestaw nie ma silnej nazwy, do ładowania jest używana tylko nazwa pliku.

AssemblyFileVersion

AssemblyFileVersion to numer wersji przypisany do pliku zestawu, tak jak w systemie plików. Jest on wyświetlany przez Eksploratora Windows i nigdy nie jest używany przez program .NET Framework lub środowisko uruchomieniowe do odwoływania się.

Atrybuty w AssemblyInfo.cs

// Version information for an assembly consists of the following four values:
// Major Version
// Minor Version
// Build Number
// Revision
[assembly: AssemblyVersion("1.0.0.0")]  
[assembly: AssemblyFileVersion("1.0.0.0")]

Użycie gwiazdki (*) zamiast określonej liczby umożliwia kompilatorowi automatyczne zwiększanie wartości przy użyciu każdej kompilacji.

Jeśli na przykład tworzysz zestaw platformy, który jest używany przez wielu deweloperów, a nowe wersje są często wydawane (na przykład codziennie), a zestawy są silnie nazwane, deweloperzy będą musieli zaktualizować odwołania do każdej wersji. Może to być kłopotliwe i może prowadzić do nieprawidłowych odwołań.

Lepszym podejściem w takich zamkniętych i nietrwałych scenariuszach jest utrzymywanie AssemblyVersion i aktualizowanie tylko AssemblyFileVersion. Umożliwia deweloperom nadpisywanie zestawu w ścieżce odniesienia bez zmieniania odwołań do projektu.

W przypadku kompilacji wersji centralnej lub końcowej zaleca się zaktualizowanie AssemblyVersion w celu odzwierciedlenia znaczących zmian. W takich przypadkach element AssemblyFileVersion jest zwykle aktualizowany, aby pasował do AssemblyVersion dla zachowania spójności.