Tag: getfileversion

FileVersionInfo.FileVersion返回ProductVersion?

我试图使用C#获取文件版本: string file = @”C:\somefile.dll”; Console.WriteLine(FileVersionInfo.GetVersionInfo(file).FileVersion); 对于大多数文件,这很好,但是对于某些我收到的结果与Windows文件浏览器中显示的结果不同。 请参见附图:windows中显示的文件版本为“0.0.0.0”,但我使用FileVersion属性的文件版本为“000.000.000.000”。 我尝试使用不同版本的.NET(2,3.5,4),它们给出了相同的结果。 其他人遇到过这个问题? 谢谢Lior

控制台应用程序中的FileVersionInfo.GetVersionInfo()不正确

我使用FileVersionInfo.GetVersionInfo()得到了一些严重的怪异,并希望有人可以提供帮助。 问题的基础是我正在遍历每个文件夹中调用GetVersionInfo()的所有文件。 大约有300个文件。 这适用于除2个文件之外的所有文件。 对于这些DLL,我从GetVersionInfo()得到了完全不正确的信息。 为了消除所有其他变量,我将此调用提取到一个简单的测试应用程序中,它仍然遇到了同样的问题。 但是,如果我将测试应用程序构建为Windows应用程序(最初是控制台应用程序),那么数据会恢复正常。 只是为了澄清一下,当作为控制台应用程序运行时返回的不正确数据不仅仅是如果文件不包含版本数据就会得到的空信息。 它包含合理的数据,但只包含错误的数据。 就好像是从不同的文件中读取它一样。 我找了一个包含匹配版本数据的文件,但找不到。 如果构建为控制台应用程序而不是Windows应用程序,为什么这个简单的调用function会不同? 如果有人可以帮助我,我将非常感激。 安德,安迪 – 已添加代码 using System; using System.Diagnostics; namespace test { class Program { static void Main(string[] args) { string file = “C:\\ProblemFile.dll”; FileVersionInfo version = FileVersionInfo.GetVersionInfo(file); string fileName = version.FileName; string fileVersion = version.FileVersion; Console.WriteLine(string.Format(“{0} : {1}”, fileName, fileVersion)); } } }