Версия файла 0.0.0.0 во вкладке «Сведения» о свойствах файла Windows Explorer .exe, скомпилированного с Visual Studio 2017 - PullRequest
1 голос
/ 04 июля 2019

В Visual Studio 2010, если бы мой AssemblyInfo.cs содержал эти строки (где «2010.1.2.3.4» фактически было бы текущим year.month.day.hour.minute):

[assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyFileVersion("2010.1.2.3.4")]

Затем я мог бы просмотреть свойства файла в проводнике Windows результирующего файла .exe и на вкладке сведений отобразилось бы:

File version 2010.1.2.3
Product version 2010.1.2.3.4

Однако в Visual Studio 2017 с точно таким же AssemblyInfo.cs на вкладке сведений о свойствах результирующего файла .exe отображается:

File version 0.0.0.0
Product version 2010.1.2.3.4

Похоже, на SO есть много похожих сообщений, но я не могу найти никаких точных совпадений, которые объясняют, почему это происходит или как это исправить, чтобы "Версия файла "отображается как 2010.1.2.3 при сборке .exe с VS2017 так же, как при сборке .exe с VS2010.

1 Ответ

1 голос
/ 05 июля 2019

Как указывает @TnTinMn, выясняется, что проблема заключалась в включении 5 номеров компонентов в AssemblyFileVersion вместо ожидаемых / типичных 4, что приводило к ненадежным результатам, как описано здесь :

Версия файла обычно представляет собой строку из четырех чисел, разделенных периоды, отражающие основной номер версии, дополнительный номер версии, номер сборки и номер редакции; например, "1.0.4309.00". Если версия не в этом формате, появляется предупреждение компилятора, и результаты, отображаемые в диалоговом окне свойств файла, непредсказуемы. Подстановочные знаки не поддерживаются.

После обновления AssemblyInfo.cs AssemblyFileVersion, содержащего только 4 номера компонента, проблема исчезла.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...