AssemblyInfo.cs中的文件版本未反映在Windows资源管理器文件属性中?

时间:2011-03-14 22:13:10

标签: .net assemblyinfo assemblyfileversion

我有一个包含AssemblyInfo.cs文件的VS2010项目。这有:

[assembly: AssemblyFileVersion("10.0.1.0")]

当我运行我的应用程序并要求执行程序集中的文件版本时,它会选择10.0.1没问题。但是,如果我在Windows资源管理器中右键单击.exe文件并打开属性对话框 - “详细信息”选项卡显示文件版本10.0.0.0(!)

为什么Windows没有看到10.0.1的文件版本?我一定错过了什么......

其他信息:如果我将版本资源添加到我的应用程序的.res文件中,则信息显示在已编译的可执行文件中,但如果我在版本资源中没有该信息,则编译的exe会忽略该文件并且“信息” AssemblyInfo.cs中的“(即Product)版本属性。

2 个答案:

答案 0 :(得分:2)

您的项目中包含的.RC或.RES文件是否包含版本资源定义?也许自定义构建目标或脚本会添加它?如果是这种情况,它将被拾取而不是在AssemblyVersion.cs中定义的版本(至少这是迈克尔卡普兰所说的here)。

article series中,他还显示来自“.MUI”文件的版本信息可以覆盖实际EXE文件中的版本信息 - 但是,如果我理解正确,那只是一个“问题”本机/非托管构建。

答案 1 :(得分:0)

我正在VS2008上进行SmartDevice开发。将AssemblyInfo.cs中的版本号更改为“ 2.1。*”后,我发现无法还原更改。不管我做什么。

在删除<project_name>.suobin/ *obj/ *,在发行版,调试模式下进行清理/重建之后,似乎没有任何区别。

最后,我首先从CE设备上卸载了该应用程序,然后再次尝试。 这次,Assembly.GetExecutingAssembly().GetName().Version开始报告正确的版本。