我可以在不使用FileVersionInfo的情况下获取exe文件的文件版本信息吗?

时间:2016-07-04 11:28:12

标签: c#

我可以通过C#中的命名空间FileVersionInfo获取文件版本信息。在FileVersionInfo中,如果文件版本为空,那么我们无法获得产品版本,公司名称等其他信息。当我们右键单击文件并在“属性”窗口中选择详细信息选项卡时,我可以看到文件版本信息但我可以通过C#代码获取价值。那么我可以在不使用FileVersionInfo的情况下获取文件版本信息吗?有没有其他方法可以获取文件版本信息。

2 个答案:

答案 0 :(得分:3)

试试这个: -

   Assembly assembly = Assembly.LoadFrom(@"D:\exePath\yourexe.exe");
   Version ver = assembly.GetName().Version;

答案 1 :(得分:0)

要获取文件版本,您必须获取AssemblyFileVersionAttribute设置的版本,例如:

[assembly: AssemblyFileVersion("3.2.10.0")]

以下是读取属性的扩展方法的代码:

    public static Version GetFileVersion(this Assembly assembly)
    {
        AssemblyFileVersionAttribute attribute = assembly.GetCustomAttribute<AssemblyFileVersionAttribute>();
        return attribute == null ? null : new Version(attribute.Version);
    }

要加载程序集,请使用前面提到的Assembly.LoadFrom方法。