ホーム>source

インストーラーが動作するプログラムがありますが、ファイルを参照するためのウィンドウを1つ追加し、1つを選択して、それをアプリの参照に追加したいと思います。ファイルの場所を取得するために参照できる場所が必要です。 BrowseDlgがあることは確認しましたが、Wixでそれにアクセスする方法がわかりません。事前設計されたBrowserDlgをどこから制御し始めるのかわからないのですが?

<前>ウィズウィズ <?xml version="1.0" encoding="UTF-8"?> <Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"> <?if $(var.Platform)=x64 ?> <?define ProductCode = "{A22947AF-0624-462F-91D7-042FBA975C74}" ?> <?else?> <?define ProductCode = "{4D5A783C-22C5-4D71-BA70-1AC08C70755D}" ?> <?endif?> <?define UpgradeCode = "{8F393562-E837-4F24-A53D-4E4D580915BC}" ?> <?define BuildVersion = 1.2.3.4?> <Product Id="$(var.ProductCode)" Name="!(loc.ProductName_$(var.Platform))" Language="!(loc.Language)" Version="$(var.BuildVersion)" Manufacturer="!(loc.Company)" UpgradeCode="$(var.UpgradeCode)"> <Package InstallerVersion="200" Compressed="yes" InstallScope="perMachine" Platform="$(var.Platform)" Manufacturer="!(loc.Company)" Description="!(loc.Description)" Keywords="!(loc.Keywords)" Comments="!(loc.Comments)" Languages="!(loc.Language)" /> <MajorUpgrade DowngradeErrorMessage="!(loc.DowngradeErrorMessage)" /> <MediaTemplate EmbedCab="yes" /> <Icon Id="icon.ico" SourceFile="$(var.app.ProjectDir)\app.ico"/> <Property Id="ARPPRODUCTICON">icon.ico</Property> <Property Id="ARPURLINFOABOUT">!(loc.helpLink)</Property> <Property Id="WIXUI_INSTALLDIR" Value="INSTALLDIR" /> <UIRef Id="WixUI_Mondo"/> <UIRef Id="WixUI_ErrorProgressText" /> <WixVariable Id="WixUIDialogBmp" Value="$(var.ProjectDir)\Assets\IconBanner.bmp"/> <WixVariable Id="WixUIBannerBmp" Value="$(var.ProjectDir)\Assets\Banner.bmp"/> <WixVariable Id="WixUILicenseRtf" Value="$(var.ProjectDir)\Assets\License.rtf"/> <Feature Id="ProductFeature" Title="appname" Level="1"> <ComponentGroupRef Id="ProductComponents" /> <ComponentGroupRef Id="PublishedComponents" /> </Feature> </Product> </Wix>
あなたの答え
  • 解決した方法 # 1

    CustomizeDlgがWiXソースのBrowseDlgをどのように使用するかを見てください。

    https://raw.githubusercontent.com/wixtoolset/UI.wixext/master/src/wixlib/CustomizeDlg.wxs

    <前>ウィズウィズ

    基本的に、選択参照コントロールイベントを使用し、_BrowsePropertyを使用してデータを共有する必要があります。

    これはファイルではなくフォルダを選択する場合にのみ使用できることに注意してください。これを行うには、MSI外のカスタムUI作業を使用する必要があります。これは非常に高度なものであるため、インストーラーではなくアプリケーションの最初の実行にこれを延期する方が簡単で優れている場合があります。

    <Dialog Id="CustomizeDlg" Width="370" Height="270" Title="!(loc.CustomizeDlg_Title)" TrackDiskSpace="yes"> <Control Id="Tree" Type="SelectionTree" X="25" Y="85" Width="175" Height="115" Property="_BrowseProperty" Sunken="yes" TabSkip="no" Text="!(loc.CustomizeDlgTree)" /> <Control Id="Browse" Type="PushButton" X="294" Y="210" Width="66" Height="17" Text="!(loc.CustomizeDlgBrowse)"> <Publish Event="SelectionBrowse" Value="BrowseDlg">1</Publish> <Condition Action="hide">Installed</Condition> <Condition Action="disable">Installed</Condition> </Control>

  • 前へ java - JPAクエリ:サブクエリをグループ化条件に結合する
  • 次へ matplotlib - LogLocatorのsubs引数について