1

我有一个包含 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 中的版本属性。

4

2 回答 2

2

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

在该系列文章中,他还展示了来自“.MUI”文件的版本信息可以覆盖来自实际 EXE 文件的版本信息——尽管,如果我理解正确的话,这只是本机/非托管构建的一个“问题”。

于 2011-03-15T06:22:36.583 回答
0

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

在发布,调试模式中删除<project_name>.suo, bin/ *, obj/ *, 清理/重建后,似乎没有任何区别。

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

于 2018-07-29T08:16:14.537 回答