主にWiX 3.6でインストールパッケージを作成しているため、 Burn ブートストラップ機能を利用できます。これまでのところ、組み込みのブートストラップアプリケーション(WixStandardBootstrapperApplication.RtfLicense
)と共にインストールされる複数のMSIパッケージがバンドルされています。
Burnは、カスタムUX.dll
を指定することでデフォルトのブートストラップアプリケーションを置き換えることができることを読みましたが、カスタムux.dll
の構築方法を説明するリソース(つまり、 、バーンエンジンとの統合方法、使用するテクノロジー、実装するインターフェイスなど)。
私の目標は、ユーザーから任意の情報を収集し、その情報をさまざまなバンドルされたMSIファイル、EXEファイルなどに渡すことができるブランドのブートストラップを作成することです。
だから私は本当に2つの質問があります:
UX.dll
の作成方法を説明するリソースはありますか?知っておくべき重要なことは、統合を処理するBootstrapperApplicationクラスを定義するWiXバイナリにBootstrapperCore.dllがあることです。 Burnエンジンを使用します。独自の派生クラスを作成し、「Run」メソッドをオーバーライドしてカスタムUIを起動する必要がありました。
BootstrapperApplicationクラス(src\Setup\WixBA\WixBA.csproj)を使用するための参照として、WiXブートストラップのUIを定義するWixBAプロジェクトを使用することも役立ちました。
カスタムブートストラップDLLファイルを参照するために使用したマークアップは次のとおりです。
<BootstrapperApplicationRef Id="ManagedBootstrapperApplicationHost" >
<Payload SourceFile="$(var.InstallSourceResources)Bootstrapper\FusionInstallUX.dll"/>
<Payload Id="FusionInstallUX.config"
SourceFile="$(var.InstallSourceResources)Bootstrapper\FusionInstallUX.BootstrapperCore.config"
Name="BootstrapperCore.config" Compressed="yes"/>
</BootstrapperApplicationRef>
構成ファイルの構成は次のとおりです。
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<sectionGroup
name="wix.bootstrapper"
type="Microsoft.Tools.WindowsInstallerXml.Bootstrapper.BootstrapperSectionGroup, BootstrapperCore">
<section
name="Host"
type="Microsoft.Tools.WindowsInstallerXml.Bootstrapper.HostSection, BootstrapperCore" />
</sectionGroup>
</configSections>
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0" />
</startup>
<wix.bootstrapper>
<Host assemblyName="FusionInstallUX">
<supportedFramework version="v4\Full" />
<supportedFramework version="v4\Client" />
</Host>
</wix.bootstrapper>
</configuration>
他の例にも従い、追加しました
[Assembly: BootstrapperApplication(typeof([name of class deriving from BootstrapperApplication]))]
AssemblyInfo.cs
ファイル。
最後に、Stack Overflowの質問 バーン管理対象ブートストラップ内のWiXでパッケージのINSTALLLOCATIONを指定 では、バーン変数を設定および使用してインストールを促進する方法について説明します。
この情報を武器に、独自のカスタムBootstrapperアプリケーションで世界に大混乱をもたらす準備ができました!
@Bill Campbellの回答を補足するために、 。NETでのカスタムWiX Bootstrapperの作成 に一連のブログ投稿を書きました。
ここにリストされている他のリソースに加えて、バーン用のカスタムブートストラップアプリケーションのベアボーンの良い例は、カスタムWiXマネージドブートストラップアプリケーション。
これは、WiXソースのWixBAプロジェクトのような他のより徹底的な例の詳細を掘り下げる前に、始めるのに適した場所であることがわかりました。
この質問に対する正確な回答ではありませんが、ManagedBootstrapperApplicationHostの外観をカスタマイズする場合は、 this が必要です。
短くするために、このように変数を宣言する必要があります(BootstrapperApplicationRefの前に配置します)
<WixVariable Id="PreqbaThemeXml" Value="tt.thm" />
<WixVariable Id="PreqbaThemeWxl" Value="tt.wxl" />
tt.thmがテーマファイルであり、tt.wxlが翻訳ファイル。これらのファイル、およびそれらが参照するすべてのファイルは、BootstrapperApplicationRefにPayoload、など
<Payload SourceFile="tt.wxl"/>
<Payload SourceFile="tt.wxl"/>
<Payload SourceFile="cat.png"/>
レイアウトの例として、WiXソースの下にあるmbapreq.thmを使用できます。
これを設定するときに欠けていた詳細の1つは、WixBalExtension.dll
への参照を含める必要があったことです。これは、ManagedBootstrapperApplicationHost
がDLL=で定義され、次のようにバンドルで使用されるためです。
<BootstrapperApplicationRef Id="ManagedBootstrapperApplicationHost">
<Payload Name="BootstrapperCore.config"
SourceFile="MyBA.BootstrapperCore.config" />
<Payload SourceFile="MyBA.dll"/>
</BootstrapperApplicationRef>