Что такое AssemblyFileVersion, используемое для С#?

В assemblyInfo.cs у меня есть AssemblyVersion и AssemblyFileVersion.

Обычно я просто увеличиваю AssemblyVersion следующим образом. 1-я цифра: основное изменение 2-я цифра: незначительное изменение 3-я цифра: исправления ошибок 4-я цифра: номер ревизии Subversion

Однако мне интересно, что такое AssemblyFileVersion для, и когда мне нужно увеличивать. Должен ли он быть таким же, как assemblyVersion?

Должен ли я просто прокомментировать это, если я его не использую?

Большое спасибо за любой совет,

Ответ 1

AssemblyVersion используется загрузчиком класса .NET и идентифицирует .NET-версию сборки. AssemblyFileVersion представляет версию файла, содержащуюся в стандартном блоке VERSION_INFO файла Windows PE... Другими словами, он представляет версию файла, как показано в диалоговом окне свойств файла.

Если вы опустите AssemblyFileVersion, компилятор по умолчанию будет таким же, как AssemblyVersion.

Ответ 2

Как правило, версия файла более точна, чем версия сборки. Например: System.Windows.Form.dll - Версия сборки: 2.0.0.0, Версия файла: 2.0.50727.3053.

Версия сборки является важной информацией, когда пришло время загрузить сборку.

Итак, если вы обнаружили небольшую ошибку в одной из ссылок на сборку. Вы исправляете ошибку, обновляете версию файла, но сохраняете одну и ту же версию сборки. Преимущество: вам не нужно повторно ссылаться на эту сборку на новую версию и с версией файла вы можете узнать текущую версию вашего файла.

Ответ 3

Установщики будут использовать AssemblyFileVersion, чтобы определить, следует ли перезаписывать файл на основе версии.

Важно отметить, что изменение AssemblyVersion для сборки, которая реализует сериализацию, имеет некоторые серьезные последствия при попытке десериализации из предыдущей версии.

Ответ 4

Я не эксперт, и я не могу ссылаться на эксперта, но из того, что я понял, в широком смысле AssemblyVersion - это "интерфейс" → что делает сборка, обратная совместимость и т.д. И AssemblyFileVersion больше связано с реализацией, которая строит и т.д.

Используйте атрибут AssemblyVersion, чтобы указать версию "Last Compatible-To" и AssemblyFileVersion, чтобы указать версию сборки. "

- > http://www.shitalshah.com/blog/IsJeffRichterScrewingUpTheNetVersioning.aspx

//О, и еще одна вещь.

Есть определенные обстоятельства (о которых я не слишком понятен, поскольку я только слышал о них, но на самом деле не испытывал их), где, если вы попытаетесь обновить приложение с dll в GAC, старые версии DLL выиграли 't быть перезаписаны новыми версиями с тем же номером версии сборки, если только Версия файла не изменилась. (Является ли это предложение достаточно сложным? Это поздно здесь...)

Ответ 5

AssemblyFileVersion используется для установки информации о версии на ресурсе Win32 в вашем бинарный, тот, который вы видите, если вы откроете окно свойств для файла в проводнике.