2017-01-16 1 views
1

는 내가 원하는 MYAPP - v1.0.15.45.msi하는 기본 출력 keyoutput 속성에있는 버전을 얻을 원하는 MyApp.msi에서 이름을 변경msi 기본 출력을 쿼리하여 어셈블리 버전을 얻는 방법은 무엇입니까?

enter image description here

에서 - 대 - 설정 - 프로젝트 -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

관련 문제