首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AssemblyFileVersion属性被忽略

AssemblyFileVersion属性被忽略
EN

Stack Overflow用户
提问于 2011-10-25 09:01:02
回答 3查看 1.9K关注 0票数 2

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

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

AssemblyVersion属性似乎只是被忽略了。

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

代码语言:javascript
复制
[assembly: AssemblyVersion("0.1")]
[assembly: AssemblyFileVersion("1.1.0.9")]

这里是windows资源管理器的外观..。

有什么地方可以控制它吗?

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

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-10-25 09:55:53

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

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

是的,又无聊又烦人。MS的Windows组不喜欢迎合托管代码。

票数 5
EN

Stack Overflow用户

发布于 2011-10-25 10:13:00

对,找到答案:-)

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

代码语言:javascript
复制
[assembly: AssemblyInformationalVersion("4.4.4.4")]

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

有关此主题的更多信息是here

票数 4
EN

Stack Overflow用户

发布于 2011-10-25 09:21:41

在我的电脑上检查,它实际上工作正常。

探险家:

物业:

其他不同的有:

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

我自己在Visual上用

代码语言:javascript
复制
[assembly: AssemblyVersion("2.2.2.2")]
[assembly: AssemblyFileVersion("3.3.3.3")]

给出了结果:

看来Visual在这里做错了什么。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7886964

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档