Почему версия файла Windows отличается от фактической версии сборки для сборки C++/CLR
У меня есть сторонняя сборка C++/CLR. Когда я щелкаю правой кнопкой мыши по dll, вкладка версии показывает 5.32.1, но когда метаинформация в ILSpy показывает 5.0.0. Почему эта разница? Какой из них правильный?
1 ответ
Версия файла, показанная на вкладке свойств проводника Windows, соответствует сборке.NET AssemblyInformationalVersion
приписывать. AssemblyVersion
это отдельная независимая вещь.
И конечно, ни один из этих двух вариантов не является более правильным, чем другой, разработчик может установить их самостоятельно.
Для AssemblyVersion
текущая практика выглядит примерно так: "сборки с одинаковой версией major.minor должны быть совместимы", но на самом деле это правило не соблюдается.
Необходимое исправление. На самом деле политика, применяемая в текущей привязке сборки CLR, заключается в том, что для загрузки должна соответствовать вся версия сборки, поэтому совместимые сборки должны иметь одинаковую версию сборки. Подробнее по теме: В чем различия между AssemblyVersion, AssemblyFileVersion и AssemblyInformationalVersion?