2017-01-16 6 views
1

Что я хочу получить версию, о свойствах первичных выходных keyoutput и переименовать его из myapp.msi в MYAPP-v1.0.15.45.msiКак запросить первичный вывод msi для получения версии сборки?

enter image description here

в-против-настройки-проекта -output-filename Я знаю, как запросить msi, используя код, который я нашел в этом link, вот код. Как я могу хотеть использовать подобный фрагмент кода?

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