Файл версии в assemblyinfo.cs не отражена в свойствах файла Windows Explorer?
-
24-10-2019 - |
Вопрос
У меня есть проект VS2010, который содержит файл AssemblyInfo.cs. Это имеет:
[assembly: AssemblyFileVersion("10.0.1.0")]
Когда я запускаю свое приложение и спрашиваю версию файла из выполняемой сборки, он не поднимает 10.0.1 без проблем. Однако, если я щелклю правой кнопкой мыши на файле .exe в Windows Explorer и открою диалоговое окно «Свойства» - вкладка «Подробности» показывает версию файла 10.0.0.0 (!)
Почему Windows не видит 10.0.1 для версии файла? Я, должно быть, что -то упускаю ...
Дополнительная информация: если я добавлю ресурс версии в файл .RES моего приложения, то информация отображается в скомпилированном исполняемом файле, но если у меня нет информации в ресурсе версии, скомпилированный EXE игнорирует файл и «информационный» (т.е. Продукт) Атрибуты версии в AssemblyInfo.cs.
Решение
Есть ли у вас, случайный файл .rc или .res, включенный в ваш проект, который содержит определение ресурсов версии? Может быть, настраиваемая цель или сценарий добавляет его? Если это так, то это будет подхвачено вместо версии, определенной в AssemblyVersion.cs (по крайней мере, это то, что говорит Майкл Каплан здесь).
В этом Статья Серия Он также показывает, что информация о версии из файла «.mui» может наложить информацию версии из фактического файла EXE - хотя, если я правильно понимаю, является лишь «проблемой» с нативными/неуправляемыми сборками.
Другие советы
Я нахожусь на VS2008 для разработки SmartDevice. После изменения номера версии в AssemblyInfo.cs на «2.1.*» Я нашел невозможным вернуть изменения. Неважно что я делаю.
После удаления <project_name>.suo
, bin/ *
, obj/ *
, Очистка/восстановление в выпуске, режим отладки, ничто не имеет никакого значения.
Наконец я сначала удаляю приложение с устройства CE и снова повторно позаботился. В это время, Assembly.GetExecutingAssembly().GetName().Version
начинает сообщать правильную версию.