0

我必须通过 C# 检索详细信息选项卡下的值,例如文件版本、.dll 和 .exe 文件的产品版本。我为此使用以下代码。

     FileVersionInfo myFile = FileVersionInfo.GetVersionInfo('Name of the file');
     //File Version
     string fileVersion = myFile.FileVersion;

此代码的问题是它为某些文件提供了不正确的文件版本。这些文件的详细信息选项卡显示不同的文件版本和代码检索不正确的值。我不确定为什么会这样。

请帮忙。提前致谢!!

4

2 回答 2

1

预期版本(来自资源管理器)是 10.0.0.35,我得到 10.0.000.0035

那是同一个数字。文件版本号在本机资源中出现两次。当您在 C++ 程序中编辑版本资源时,您也可以看到一些内容。有一个人类可读的版本,对格式没有限制。这就是您正在阅读的内容,请注意 FileVersionInfo.FileVersion 如何返回string

还有一个机器可读的版本,一个 64 位的数字。4 个部分各有 16 位。这就是 Explorer 正在阅读的内容。对应的属性是 FileMajorPart、FileMinorPart、FileBuildPart 和 FilePrivatePart。请注意它们如何返回int

ProductVersion 也有这个。

于 2012-07-16T08:26:18.487 回答
0

您可以通过以下方法获得完整的应用程序文件版本

FileVersionInfo myFile = FileVersionInfo.GetVersionInfo('Name of the file');
string fileVersion = string.Format("{0}.{1}.{2}.{3}", myFile.FileMajorPart, 
                                                      myFile.FileMinorPart, 
                                                      myFile.FileBuildPart, 
                                                      myFile.FilePrivatePart)
于 2020-11-06T10:24:26.277 回答