Использование атрибутов AssemblyVersion и AssemblyFileVersion

В этой статье описывается использование AssemblyVersion и AssemblyFileVersion атрибуты в файле AssemblyInfo.cs.

Исходная версия продукта: платформа .NET Framework
Исходный номер базы знаний: 556041

Итоги

AssemblyInfo.cs предоставляет два атрибута для определения различных типов номеров версий. В этой статье объясняется, как эффективно использовать эти атрибуты.

Microsoft .NET Framework позволяет задать для каждой сборки два разных типа номеров версий.

AssemblyVersion

AssemblyVersion — это номер версии, используемый платформой во время сборки и во время выполнения для поиска, связывания и загрузки сборок. При добавлении ссылки на сборку в проект этот номер версии включается. Во время выполнения среда CLR использует этот номер версии для загрузки сборки.

Примечание: Эта версия используется вместе с именем сборки, маркером открытого ключа и сведениями о языках и региональных параметрах, только если сборка строго подписана. Если сборка не имеет строгого имени, для загрузки используется только имя файла.

AssemblyFileVersion

AssemblyFileVersion — это номер версии, назначенный файлу сборки, как в файловой системе. Он отображается Проводником Windows и никогда не используется платформой .NET Framework или средой выполнения для создания ссылок.

Атрибуты в 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")]

Использование звездочки (*) вместо определенного числа позволяет компилятору автоматически увеличивать значение с каждой сборкой.

Например, если вы создаете сборку платформы, которая используется многими разработчиками, и вы часто выпускаете новые версии (например, ежедневно), а сборки имеют строгое название, разработчикам потребуется обновить свои ссылки с каждым выпуском. Это может быть громоздким и может привести к неправильным ссылкам.

Лучший подход в таких закрытых и нестабильных сценариях заключается в сохранении фиксированного AssemblyVersion и обновления только AssemblyFileVersion. Это позволяет разработчикам перезаписывать сборку в пути ссылки без изменения ссылок на проект.

Для центральных или окончательных сборок рекомендуется обновить AssemblyVersion, чтобы отразить значительные изменения. В таких случаях AssemblyFileVersion обычно обновляется, чтобы соответствовать AssemblyVersion для обеспечения согласованности.