2016-03-07 5 views
0

У меня есть .net-решение, основным проектом является приложение форм Windows. Я сделал проект wix installer, который упаковал мой проект.Как прочитать значение из библиотеки C# (.dll) внутри файла установщика (.wxs)

У меня есть Resource.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"];