12

チェーン内のプロジェクト msi の前に dotnet をインストールするために、rtflicence 標準ブートストラップを使用しています。

インストール場所ダイアログを表示し、ユーザーがデフォルトのインストール ディレクトリを変更できるようにする「オプション」ボタンがあることに気付きました。

次のいずれかを行う必要があります。

  1. このオプション ボタンが表示されないようにする、または
  2. インストール場所にデフォルト パスを入力し、ユーザーが変更した場合はこれをインストーラーに戻します。

ブートストラップから msipackages に Burn 変数を渡すことは可能であると読みましたが、それ以上の詳細は見つかりませんでした。正しい方向を示していただければ幸いです。

ありがとう

4

3 に答える 3

22

オプション 1 を使用するには、独自の BootstrapperApplication を作成し、メニューからオプション ボタンを削除する必要があります。

オプション 2 は、実装が非常に簡単です。ブートストラッパーは、そのビューのテキスト ブロックの内容を取得および設定するために呼び出される特別な Burn 変数を使用します。この変数は、要素InstallFolder内で割り当てることができます。Bundle

<Variable Name="InstallFolder" Type="string" Value="[ProgramFilesFolder]"/>

定数ProgramFilesFolderは、プログラムの開始時にそのテキスト ブロックの値を設定し、ユーザーが別のディレクトリを参照すると、同じ変数に格納されます。それを MSI に渡すには、チェーンでタグInstallFolderを使用して渡します (は WiX プロジェクトのプロパティの名前です)。MsiPropertyINSTALLLOCATION

<MsiPackage Vital="yes" DisplayName="Your Name" Id="MsiId" SourceFile="path/to/file.msi">
    <MsiProperty Name="INSTALLLOCATION" Value="[InstallFolder]" />
</MsiPackage>
于 2012-11-02T20:46:16.907 に答える
18

独自の BootstrapperApplication をローリングせずにオプション 1 に対処する SuppressOptionsUI オプションを発見しました。

<?xml version="1.0" encoding="UTF-8"?>

<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"
 xmlns:bal="http://schemas.microsoft.com/wix/BalExtension">

   <Bundle>
      <BootstrapperApplicationRef Id="WixStandardBootstrapperApplication.RtfLicense">
         <bal:WixStandardBootstrapperApplication LicenseFile="..\eula.rtf" SuppressOptionsUI="yes"/>
      </BootstrapperApplicationRef>

      <Chain>
      </Chain>
    </Bundle>
</Wix>
于 2012-12-28T18:21:21.307 に答える
0

テーマを作成することで、オプション ボタンを削除してみることができると思います。私は自分でテーマを使用する必要はありませんでしたが、ここに関連する 2 つの SO リンクがあり、その方向性を示すことができます。

WiX ブートストラップ テーマ ファイル?

私の WiX インストーラーのテーマ

于 2012-12-28T18:29:56.123 に答える