現在のユーザーまたはすべてのユーザーのインストールの選択にインストールするオプションを備えたWiX wxsスクリプト

StackOverflow https://stackoverflow.com/questions/829844

  •  06-07-2019
  •  | 
  •  

質問

ビルド可能な完全なWiXスクリプトが必要です。

  1. ようこそ
  2. EULA
  3. インストールフォルダー
  4. 現在のユーザーまたはすべてのユーザーのインストールの選択
  5. インストール
  6. 完了

単純なアプリケーション用であるため、1つのwxsファイルが必要です。また、現在のユーザーまたはすべてのユーザーにインストールするオプションが必要です。

役に立ちましたか?

解決

Wix3に組み込まれている WixUI_Advanced UIを確認しましたか

以下にダイアログがあります:

  • AdvancedWelcomeEulaDlg
  • BrowseDlg
  • DiskCostDlg
  • FeaturesDlg
  • InstallDirDlg
  • InstallScopeDlg (ユーザーまたはマシンごとの選択用)
  • InvalidDirDlg

他のヒント

WixUI_InstallDirも使用しましたが、「次の作業」を追加して、必要に応じてコピーして調整しました。インストーラーの最後のテキスト。 この詳細ウォークスルーを使用して、標準のWix GUIを取得し、自分の目的に合わせていくつかの画面を変更します。これには、Wixソースコードを取得する必要がありますが、Wix開発者がWixUI_InstallDirインストーラーを駆動するために含める実際のProduct.wxsファイルの未コンパイルバージョンを取得するためだけです。

したがって、基本的にソリューションに次のようなものがあります(VSのVotiveアドインを使用):

  • MyWebプロジェクト
  • Wixプロジェクト
    • MyWeb.wxs-私の製品は明らかに
    • Product.wxs-WixUI_InstallDirの構造、フロー、およびコンテンツを定義するWixソースからのWixファイル
    • My_InstallDir.wxs-ここからが楽しみです。基本的にソースコードのWixファイルをコピーし、ニーズを満たすように変更してから、Product.wxsに元の画面ではなく my 画面への参照があることを確認しました。

Product.wxs

    <UI>
        <UIRef Id="My_InstallDir"/>
    </UI>

    <!-- Add the customized EULA -->
    <WixVariable Id="WixUILicenseRtf" Value="$(var.SolutionDir)\doc\license.rtf" />
    <Property Id="WIXUI_INSTALLDIR" Value="INSTALLLOCATION" />
    <UIRef Id="My_InstallDir" />
    <!-- Add the customized banner logo -->
    <WixVariable Id="WixUIBannerBmp" Value="$(var.SolutionDir)\doc\InstallerBanner.bmp" />
    <WixVariable Id="WixUIDialogBmp" Value="$(var.SolutionDir)\doc\InstallerSidebar.bmp" />

My_InstallDir.wxsは、終了ダイアログを参照する行を除き、まったく変更されていません。注:

<Publish Dialog="MyExitDialog" Control="Finish" Event="EndDialog" Value="Return" Order="999">1</Publish>

したがって、実際の変更は、テキストを表示しているMy_ExitDialogにあります。

<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<Fragment>
    <UI>
        <Dialog Id="MyExitDialog" Width="370" Height="270" Title="!(loc.ExitDialog_Title) test">
            <Control Id="Finish" Type="PushButton" X="236" Y="243" Width="56" Height="17" Default="yes" Cancel="yes" Text="!(loc.WixUIFinish)" />
            <Control Id="Cancel" Type="PushButton" X="304" Y="243" Width="56" Height="17" Disabled="yes" Text="!(loc.WixUICancel)" />
            <Control Id="Bitmap" Type="Bitmap" X="0" Y="0" Width="370" Height="234" TabSkip="no" Text="!(loc.ExitDialogBitmap)" />
            <Control Id="Back" Type="PushButton" X="180" Y="243" Width="56" Height="17" Disabled="yes" Text="!(loc.WixUIBack)" />
            <Control Id="BottomLine" Type="Line" X="0" Y="234" Width="370" Height="0" />
            <!--<Control Id="Description" Type="Text" X="135" Y="70" Width="220" Height="40" Transparent="yes" NoPrefix="yes" Text="!(loc.ExitDialogDescription)" />-->
            <Control Id="Title" Type="Text" X="135" Y="20" Width="220" Height="60" Transparent="yes" NoPrefix="yes" Text="!(loc.ExitDialogTitle)" />
            <Control Id="NextSteps" Type="ScrollableText" X="135" Y="70" Width="220" Height="140" Sunken="yes" TabSkip="no">
                <Text SourceFile="$(var.SolutionDir)\doc\GemWebAfterInstall.rtf" />
            </Control>
        </Dialog>

        <InstallUISequence>
            <Show Dialog="MyExitDialog" OnExit="success" />
        </InstallUISequence>

        <AdminUISequence>
            <Show Dialog="MyExitDialog" OnExit="success" />
        </AdminUISequence>
    </UI>
</Fragment>

あなたは解決策を探しているのであって、必ずしもポインタを探しているのではないことを知っています。しかし、私が参照する記事を主要な出発点として使用すると、必要なすべての部品をすぐに使えるWixUIビットで見つけることができるか、「すぐに使える」部分の小さな断片を置き換えることで見つけることができると思います。私のようなもの。幸運を祈ります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top