2017-01-16 51 views
1

我想要的是得到是在主输出keyoutput性质的版本,它从myapp.msi重命名为MYAPP-v1.0.15.45.msi如何查询msi主输出以获取程序集版本?

enter image description here

在-VS-安装项目-output-filename 我知道如何通过使用我在此link中找到的代码来查询msi,这里是代码。我怎么能想要我想要使用类似的代码片段?

static string GetMsiProperty(string msiFile, string property) 
    { 
     string retVal = string.Empty; 

     // Create an Installer instance 
     Type classType = Type.GetTypeFromProgID("WindowsInstaller.Installer"); 
     Object installerObj = Activator.CreateInstance(classType); 
     Installer installer = installerObj as Installer; 

     // Open the msi file for reading 
     // 0 - Read, 1 - Read/Write 
     Database database = installer.OpenDatabase(msiFile, 0); 

     // Fetch the requested property 
     string sql = String.Format("SELECT Value FROM Property WHERE Property='{0}'", property); 
     View view = database.OpenView(sql); 
     view.Execute(null); 

     // Read in the fetched record 
     Record record = view.Fetch(); 

     while (record != null) 
     { 
      Console.WriteLine(record.get_StringData(0) + '=' + record.get_StringData(1) + '=' + record.get_StringData(2) + '=' + record.get_StringData(3)); 
      record = view.Fetch(); 
     } 
     view.Close(); 
     System.Runtime.InteropServices.Marshal.FinalReleaseComObject(view); 
     System.Runtime.InteropServices.Marshal.FinalReleaseComObject(database); 

     return retVal; 
    } 

回答

0

目前尚不清楚你已经尝试什么,如果你运行该代码在所有,但最简单的回答是,你调用代码,并索要的ProductVersion属性。

ProductVersion property

相关问题