Почему версия файла 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?

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