Как получить BrowseDlg в наборе инструментов wix? - PullRequest
0 голосов
/ 23 января 2020

У меня есть программа с работающим установщиком, хотя я хочу добавить одно окно для просмотра файлов и выбрать одно, а также добавить его в ссылки для приложения, и мне нужно одно, где вы можете просмотреть, чтобы получить расположение файлов. Я видел, что есть 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 Ответ

0 голосов
/ 24 января 2020

Посмотрите, как CustomizeDlg использует BrowseDlg в источнике WiX на

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

 <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>

В основном вам нужно использовать Выбор Просмотр управляющего события и обмен данными с использованием _BrowseProperty.

Следует отметить, что это можно использовать только для выбора папок, а не файлов. Для этого потребуется использовать пользовательский интерфейс за пределами MSI. Это очень продвинутый материал, так что может быть проще и лучше отложить это до первого запуска приложения вместо установщика.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...