簡體   English   中英

WIX-使用自定義引導程序WPF UI時如何在Msi中設置屬性

[英]WIX - How to Set Properties in Msi when using Custom Bootstrapper WPF UI

我大約有6到7個應用程序包含網站和Windows服務,它們打包在一起,為此,我開發了帶有WPF引導程序應用程序的自定義UI,其中我需要從用戶那里獲取一些輸入,例如虛擬目錄名稱,安裝位置,SQL憑證等

現在的問題是,當我嘗試通過wpf Ui設置虛擬目錄名稱並通過通過msi屬性進行設置從捆綁包傳遞給msi時,msi中的屬性未更新

以下是我的代碼段

在product.wxs中,我定義了如下的屬性和目錄結構

 <Property Id="TARGETDIRECTORY" Value="test"/>
    <Directory Id='TARGETDIR' Name='SourceDir'>
     <Directory Id="IISROOT" Name='WebDir'>
     <Directory Id='INSTALLDIR'   Name='[TARGETDIRECTORY]'>

在bundle.wxs中

<Variable bal:Overridable="yes" Name="TargetDirectory" Value="test"/>
 <MsiPackage Id="TESTSERVER" SourceFile="$(var.Gac.TEST.Setup.Server.TargetPath)" Visible="yes"  DisplayInternalUI="no">
<MsiProperty Name="TARGETDIRECTORY" Value="[TargetDirectory]"/>
       </MsiPackage>

在Bootstraper中

engine.StringVariables["TargetDirectory"] = "XYZ";

當我安裝時,將使用名稱TARGETDIRECTORY而不是xyz創建虛擬目錄。 我是wix的新手,誰能指導我實現這一目標,請讓我知道我做錯了什么

I pass some of the properties from cmd , and some i read from xml document and set them.


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.StartInfo = info;
                    p.Start();
                    p.WaitForExit();
                }

現在,我可以使用自定義操作設置INSTALLDIR名稱。

在自定義操作中,我正在從xml設置所需的屬性值

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM