我有一个VS2010项目,其中包含一个assemblyInfo.cs文件。这有:

[assembly: AssemblyFileVersion("10.0.1.0")]

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

为什么Windows不为文件版本看到10.0.1?我肯定错过了什么...

附加信息:如果我在我的应用程序.Res文件中添加了一个版本资源,则将显示在编译可执行文件中的信息,但是如果我没有版本资源中的信息,则编译EXE忽略了该文件和“信息”(即product)版本属性insedblyInfo.cs。

有帮助吗?

解决方案

您是否有任何偶然的项目中包含版本库定义的.rc或.res文件?也许自定义构建目标或脚本添加了它?如果是这种情况,它将被拾取,而不是gasseblyvers.cs中定义的版本(至少是迈克尔·卡普兰(Michael Kaplan)所说的 这里).

在那里面 文章系列 他还表明,来自“ .mui”文件中的版本信息可以叠加来自实际exe文件的版本信息 - 尽管正确理解的话,这只是本机/非管理构建的“问题”。

其他提示

我正在VS2008进行SmartDevice开发。将汇编中的版本编号更改为“ 2.1。*”之后,我发现无法恢复更改。不管我做什么。

删除 <project_name>.suo, bin/ *, obj/ *, ,在发行,调试模式下进行清洁/重建,似乎没有任何区别。

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top