知っておくべき重要なことは、WiXバイナリにBootstrapperCore.dllがあり、Burnエンジンとの統合を処理するBootstrapperApplicationクラスを定義していることです。カスタムUIを起動するには、独自の派生クラスを作成し、「Run」メソッドをオーバーライドする必要がありました。
また、WiXブートストラッパーのUIを定義するWixBAプロジェクトを、BootstrapperApplicationクラス(src \ Setup \ WixBA \ WixBA.csproj)を使用するための参照として使用することも役立ちました。
カスタムブートストラッパー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の質問「Burnマネージドブートストラッパー内のWiXでパッケージのINSTALLLOCATIONを指定する」では、 Burn変数を設定して使用してインストールを促進する方法について説明しています。
この情報で武装して、私は今、私自身のカスタムBootstrapperアプリケーションで世界に大混乱をもたらす準備ができています!