让AssemblyVersion与我正在处理的类库中的AssemblyFileVersion属性不同是有问题的。
因此,我尝试创建一个空的类库(除了Class1.cs),以查看它是否是某个设置,但我得到了相同的行为。
AssemblyVersion属性似乎只是被忽略了。
这是我的AssemblyInfo.cs文件中的相关部分.
[assembly: AssemblyVersion("0.1")]
[assembly: AssemblyFileVersion("1.1.0.9")]这里是windows资源管理器的外观..。

有什么地方可以控制它吗?
编辑:我发现一个文件有差异,所以它不是显示两个不同字段的相同值的windows资源管理器,这与从编译器/链接器生成的方式有关.

发布于 2011-10-25 09:55:53
这里的关键问题是Windows对托管程序中的属性一无所知。它读取非托管文件版本资源。嵌入在带有C#编译选项的/win32res程序集中的代码。如果不使用该选项,编译器将自动生成该选项,使用在AssemblyInfo.cs中指定的程序集属性值来创建资源。
但是,非托管文件版本资源没有一个标准字段来指定任何类似AssemblyVersion的内容。只有AssemblyFileVersion。编译器实际上会发出它,版本资源是可扩展的。但是Windows是最后一个仍然显示这些自定义字段的版本。通过在Visual中使用File + Open + File打开程序集,可以看到该非托管资源。
是的,又无聊又烦人。MS的Windows组不喜欢迎合托管代码。
发布于 2011-10-25 10:13:00
对,找到答案:-)
您需要编辑AssemblyInfo.cs并在底部添加以下内容
[assembly: AssemblyInformationalVersion("4.4.4.4")]该值显示在资源管理器中的“产品版本”中。AssemblyInformationalVersion是可选的。如果未给出,则使用AssemblyVersion。
有关此主题的更多信息是here。
发布于 2011-10-25 09:21:41
在我的电脑上检查,它实际上工作正常。
探险家:

物业:

其他不同的有:

如果这有帮助的话,我的windows explorer.exe版本是6.1.7601.17567。Windows 7 SP1
我自己在Visual上用
[assembly: AssemblyVersion("2.2.2.2")]
[assembly: AssemblyFileVersion("3.3.3.3")]给出了结果:

看来Visual在这里做错了什么。
https://stackoverflow.com/questions/7886964
复制相似问题