2016-03-07 50 views
0

我有一個.net解決方案,主要項目是Windows窗體應用程序。我做了一個wix安裝程序項目打包我的項目。如何從我的(.wxs)安裝文件中的c#庫(.dll)中讀取值

我有一個Resources.dll,其中包含一些圖像,版本號和應用程序的名稱。

我需要的是讀取版本號的值,以及從我的.wxs文件中的這個資源的圖像。可能嗎 ?

回答

0

您可以從命令提示符發送您的值。

從你的WinForm:

using (var p = new Process()) 
       { 
        var info = new ProcessStartInfo 
        { 
         WindowStyle = ProcessWindowStyle.Hidden, 
         FileName = @"C:\Windows\System32\cmd.exe", 
         Arguments = string.Format("/c msiexec /i \"{0}\\{6}.msi\" PATHNAME=\"{0}\" SSLCERTPATH=\"{1}\"" + 
         " MSINEWINSTANCE=1 TRANSFORMS=\":{2}\" USERPATH={3} ENVIRONMENTPATH={4} SSLCERTPASS=\"{5}\" /L*v \"{0}\\{6}Log.txt\"" 
         , XmlSettings.EnvironmentFolderPath, FindCertificates.SslCertPath, environment, XmlSettings.IisUserFolderPath, 
         XmlSettings.EnvironmentFolderPath, FindCertificates.SslCertPass, msiName), 
         UseShellExecute = false, 
         CreateNoWindow = true 
        }; 
        p.Start(); 
        p.WaitForExit(); 
       } 

而在WXS:

<Property Id="SITEPHYSPATH" Hidden="yes"/> 
    <Property Id="USERPATH" Hidden="yes"/> 
    <Property Id="ENVIRONMENTPATH" Hidden="yes"/> 
    <Property Id="PATHNAME" Hidden="yes" /> 

然後最後在自定義操作,你可以用你的價值觀做任何事,但第一套他們:

var userpath = session["USERPATH"];