使用Visual Studio 2017编译的.exe的Windows资源管理器文件属性“详细信息”选项卡中的文件版本0.0.0.0

时间:2019-07-04 19:22:07

标签: c# .net winforms

在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

但是,在具有完全相同的AssemblyInfo.cs的Visual Studio 2017中,生成的.exe文件属性的详细信息选项卡显示:

File version 0.0.0.0
Product version 2010.1.2.3.4

SO上似乎有很多相似帖子,但我找不到任何 exact 匹配项来解释这种情况的发生原因或解决方法,以便“使用VS2017构建.exe时,文件版本”显示为2010.1.2.3,就像使用VS2010构建.exe时一样。

1 个答案:

答案 0 :(得分:1)

如@TnTinMn所指出的那样,事实证明,问题在于在AssemblyFileVersion中包含5个组件编号,而不是预期的/典型的4个组件编号,导致产生不可靠的结果,如here所述:

  

文件版本通常是由四个数字组成的字符串,中间用   期间,反映主要版本号,次要版本号,   内部版本号和修订号;例如“ 1.0.4309.00”。如果   版本不是这种格式,则会发生编译器警告,并且   文件属性对话框中显示的结果是不可预测的。   不支持通配符。

将AssemblyInfo.cs AssemblyFileVersion更新为仅包含4个组件编号后,问题消失了。