.net 正在忽略AssemblyFileVersion属性
我在使AssemblyVersion与我正在处理的类库中的AssemblyFileVersion属性不同时遇到问题 因此,我尝试创建一个空的类库(Class1.cs除外),看看它是否是某个设置,但我得到了相同的行为 似乎正在忽略AssemblyVersion属性 这是我的AssemblyInfo.cs文件中的相关位.net 正在忽略AssemblyFileVersion属性,.net,assemblyversionattribute,.net,Assemblyversionattribute,我在使AssemblyVersion与我正在处理的类库中的AssemblyFileVersion属性不同时遇到问题 因此,我尝试创建一个空的类库(Class1.cs除外),看看它是否是某个设置,但我得到了相同的行为 似乎正在忽略AssemblyVersion属性 这是我的AssemblyInfo.cs文件中的相关位 [assembly: AssemblyVersion("0.1")] [assembly: AssemblyFileVersion("1.1.0.9")] 下面是windows资源
[assembly: AssemblyVersion("0.1")]
[assembly: AssemblyFileVersion("1.1.0.9")]
下面是windows资源管理器中的情况
是否有一个设置可以控制这一点
编辑:
我发现有一个文件存在差异,所以它不是windows资源管理器为两个不同的字段显示相同的值,而是与从编译器/链接器生成DLL的方式有关
在我的电脑上检查,它实际上工作正常 探索者: 特性: 其他不同的是: 如果有帮助,我的windows explorer.exe版本是6.1.7601.17567。Windows7SP1 我自己在VisualStudio上用
[assembly: AssemblyVersion("2.2.2.2")]
[assembly: AssemblyFileVersion("3.3.3.3")]
给出了结果:
看来Visual Studio在这里做错了什么。这里的关键问题是Windows对托管程序中的属性一无所知。它读取非托管文件版本资源。嵌入到具有/win32res compile选项的C#程序集中的一个。默认情况下,如果您不使用该选项,编译器会自动生成它,使用您在AssemblyInfo.cs中指定的程序集属性值来创建资源 但非托管文件版本资源没有标准字段来指定类似[AssemblyVersion]的内容。仅限[AssemblyFileVersion]。编译器实际发出它,版本资源是可扩展的。但Windows XP是最后一个仍然显示这些自定义字段的版本。通过使用File+Open+File在VisualStudio中打开程序集,可以看到该非托管资源 是的,又跛又烦。MS的Windows组不喜欢迎合托管代码。对,找到了答案:-) 您需要编辑AssemblyInfo.cs并在底部添加以下内容
[assembly: AssemblyInformationalVersion("4.4.4.4")]
该值显示在资源管理器的“产品版本”中。AssemblyInformationalVersion是可选的。如果未给出,则使用AssemblyVersion
有关此主题的详细信息,请参见产品版本!程序集版本。对我来说,它似乎工作正常…@Marc,那么AssemblyVersion属性在windows资源管理器中映射到了什么呢?很确定它曾经显示过,但实际上我无法在win-7中显示它。答案很可能很简单:它根本不影响资源管理器,但仍然是程序集定义的一个重要部分。我确信它用于显示不同的值,我只是检查了一下,在我正在处理的项目中只能找到一个具有不同产品/文件版本的文件。log4net有1.2.10.0(文件)和1.2(产品)。现在我知道我在explorer中看到了错误的东西,除了有点恼火之外,我想知道如何/在哪里检查assembly version属性。嗯,在这个例子中,反射器可能是我的朋友。可能是我显示这两个属性的记忆一直回到xp。是的,我找到了那个属性,但没有尝试,因为我只是想检查AssemblyVersion是什么。谢谢。我刚才有不同的
AssemblyVersion
和AssemblyFileVersion
条目,并且AssemblyFileVersion
用于资源管理器中的产品和文件版本。(仍然可以使用assemblyInformationVersion
来“修复”产品版本,但这与上面的情况略有相反。我认为如果没有assemblyInformationVersion
和AssemblyFileVersion
,则使用AssemblyVersion
)