Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 正在忽略AssemblyFileVersion属性_.net_Assemblyversionattribute - Fatal编程技术网

.net 正在忽略AssemblyFileVersion属性

.net 正在忽略AssemblyFileVersion属性,.net,assemblyversionattribute,.net,Assemblyversionattribute,我在使AssemblyVersion与我正在处理的类库中的AssemblyFileVersion属性不同时遇到问题 因此,我尝试创建一个空的类库(Class1.cs除外),看看它是否是某个设置,但我得到了相同的行为 似乎正在忽略AssemblyVersion属性 这是我的AssemblyInfo.cs文件中的相关位 [assembly: AssemblyVersion("0.1")] [assembly: AssemblyFileVersion("1.1.0.9")] 下面是windows资源

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

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

似乎正在忽略AssemblyVersion属性

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

[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