Для чего используется AssemblyFileVersion в C#?
В AssemblyInfo.cs у меня есть AssemblyVersion и AssemblyFileVersion.
Обычно я просто увеличиваю AssemblyVersion следующим образом. 1-я цифра: значительное изменение 2-я цифра: незначительное изменение 3-я цифра: исправление ошибок 4-я цифра: номер версии Subversion
Однако мне интересно, для чего нужен AssemblyFileVersion и когда мне нужно увеличивать его. Должно ли оно быть таким же, как сборка версии?
Должен ли я просто закомментировать это, если я не использую это?
Большое спасибо за любые советы,
5 ответов
AssemblyVersion используется загрузчиком классов.NET и определяет версию сборки.NET. AssemblyFileVersion представляет версию файла, содержащуюся в стандартном блоке VERSION_INFO файла Windows PE... другими словами, она представляет версию файла, как показано в диалоговом окне свойств файла.
Если вы опустите AssemblyFileVersion, компилятор по умолчанию будет таким же, как AssemblyVersion.
Обычно версия файла является более точной, чем версия сборки. Например: System.Windows.Form.dll - версия сборки: 2.0.0.0, версия файла: 2.0.50727.3053.
Версия сборки является важной информацией, когда необходимо загрузить сборку.
Итак, если вы обнаружите небольшую ошибку в одной из упомянутых сборок. Вы исправляете ошибку, обновляете версию файла, но сохраняете ту же версию сборки. Преимущество: вам не нужно связывать ваши ссылки на эту сборку с новой версией, а с версией файла вы можете узнать текущую версию вашего файла.
Я не эксперт, и, возможно, я не ссылаюсь на эксперта, но из того, что я понял, в общих чертах, AssemblyVersion относится к "интерфейсу" -> что делает сборка, обратная совместимость и т. Д. И AssemblyFileVersion - это больше, чем делать. с реализацией, которую строят и т.д.
Используйте атрибут AssemblyVersion, чтобы указать версию "Last Compatible-To", и атрибут AssemblyFileVersion, чтобы указать версию сборки ".
-> http://www.shitalshah.com/blog/IsJeffRichterScrewingUpTheNetVersioning.aspx
// О, и еще одна вещь.
Существуют определенные обстоятельства (о которых мне не слишком ясно, поскольку я только слышал о них, но на самом деле не испытывал их), когда, если вы попытаетесь обновить приложение с помощью DLL в GAC, старые версии DLL не будут перезаписывается новыми версиями с тем же номером версии сборки, если только версия файла не была изменена. (Это предложение достаточно сложно? Здесь поздно...)
Установщики будут использовать AssemblyFileVersion, чтобы определить, следует ли перезаписать файл в зависимости от версии.
Важно отметить, что изменение AssemblyVersion для сборки, которая реализует сериализацию, имеет некоторые серьезные последствия при попытке десериализации из предыдущей версии.
AssemblyFileVersion используется для установки информации о версии в ресурсе Win32 в вашем двоичном файле, который вы увидите, если откроете окно свойств для файла в Проводнике.