Проверка версии сборки в.Net

Я пытаюсь полностью разобраться в версиях сборки и строгих именах в.NET

Я нашел эту статью о версиях сборки, в которой говорится, что для сопоставления версий используется только Major.Minor.Build. Я не могу найти ничего, что может подтвердить / опровергнуть это.

Формат версии сборки... Редакция:
Сборки с одинаковыми именами, номерами старших и младших версий, но разными ревизиями предназначены для полной взаимозаменяемости. Это было бы целесообразно исправить дыру в безопасности в ранее выпущенной сборке.

Статьи MS говорят такие вещи, как:

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

Означает ли это, что, скажем, 1.0.0.0 и 1.0.0.1 являются взаимозаменяемыми в среде строгих имен, а 1.0.1.1 - нет?

Каков окончательный ответ, пожалуйста?

2 ответа

Решение

Я не нашел ничего в связанной статье, утверждающей, что в сопоставлении версий используется только Major.Minor.Build. Фактически используются все четыре компонента версии.

Ключевым моментом является intended to be interchangeable, Являются ли они на самом деле взаимозаменяемыми, зависит от автора, который может уважать или игнорировать рекомендации MS.

Поставщик общей сборки, установленной в GAC, может предоставить файл политики издателя для перенаправления со старой версии на новую версию сборки. Он должен делать это только в том случае, если новая версия обратно совместима со старой.

Сборка AssemblyVersion-атрибут оценивается полностью при сравнении версий. Это означает, что изменение одной части номера версии приведет к несовпадению сборок.

Один из способов обойти это - позволить AssemblyVersion-атрибут всегда неизменен, например, установлен в [AssemblyVersion("1.2.3.0")]и использовать AssemblyFileVersion-атрибут для изменения версий, таких как ревизии, например [AssemblyFileVersion("1.2.3.20120909")], Это дает вам возможность обновить версию сборки со строгим именем без обновления всех ссылок.

Другие вопросы по тегам