FileVersionInfo检索不正确的文件版本

时间:2012-07-16 05:52:37

标签: c# .net dll

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

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

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

请帮忙。在此先感谢!!

2 个答案:

答案 0 :(得分:1)

  

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

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

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

ProductVersion也有这个。

答案 1 :(得分: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)