正在忽略AssemblyFileVersion属性

时间:2011-10-25 09:01:02

标签: .net assemblyversionattribute

我遇到的问题是使AssemblyVersion与我正在处理的类库中的AssemblyFileVersion属性不同。

所以,我尝试创建一个空的(除了Class1.cs)类库,看看它是否是某个设置,但我得到了同样的行为。

似乎只是忽略了AssemblyVersion属性。

这是我的AssemblyInfo.cs文件中的相关位...

[assembly: AssemblyVersion("0.1")]
[assembly: AssemblyFileVersion("1.1.0.9")]

以下是Windows资源管理器中的内容......

Windows Explorer Screen Grab

是否有某个设置可以控制它?

修改 我找到了一个存在差异的文件,因此不是Windows资源管理器显示两个不同字段的相同值,这与从编译器/链接器生成DLL的方式有关...

enter image description here

3 个答案:

答案 0 :(得分:5)

这里的关键问题是Windows对托管程序中的属性一无所知。它读取非托管文件版本资源。使用/ win32res编译选项嵌入C#程序集的那个。如果您不使用该选项,则编译器会自动生成它,使用您在AssemblyInfo.cs中指定的程序集属性值来创建资源。

但是,非托管文件版本资源没有标准字段来指定[AssemblyVersion]之类的内容。只有[AssemblyFileVersion]。编译器实际发出它,版本资源是可扩展的。但Windows XP是仍然显示这些自定义字段的最后一个版本。您可以通过使用File + Open + File在Visual Studio中打开程序集来查看非托管资源。

是的,蹩脚而烦人。 MS的Windows组不喜欢迎合托管代码。

答案 1 :(得分:4)

是的,找到了答案: - )

您需要编辑AssemblyInfo.cs并在底部添加以下内容

[assembly: AssemblyInformationalVersion("4.4.4.4")]

该值显示在资源管理器中的“产品版本”中。 AssemblyInformationalVersion是可选的。如果没有给出,则使用AssemblyVersion。

有关此主题的更多信息,请参见here

答案 2 :(得分:1)

检查我的电脑,它确实可以正常工作。

浏览器:

enter image description here

属性:

enter image description here

其他不同的是: enter image description here

如果有帮助,我的Windows explorer.exe版本是6.1.7601.17567。 Windows 7 SP1

使用

在Visual Studio上自行测试
[assembly: AssemblyVersion("2.2.2.2")]
[assembly: AssemblyFileVersion("3.3.3.3")]

给出结果: enter image description here 所以看起来Visual Studio在这里做错了。