2

私は Burn の初心者で、Managed Bootstrapper Application (MBA) と Bundle パッケージの開発を学んでいます。MBA には Dot Net Framework 4.x が必要なため、Managed Interface を実行する前にターゲット OS にインストールする必要があります。

質問: 1 つのパッケージ内から Bootstrapper のマネージド インターフェイスを起動する前に、.Net Framework 4.x のインストールを起動することは可能ですか?

アイデア:ドットネット フレームワーク 4.x を 1 つのパッケージにパックする代わりに、ドットネット フレームワーク 4.xx 用の別のパッケージを作成し、メイン パッケージ (MBA を含む) もその中に追加することをお勧めします。 dotnet Framework 4.xx のインストールを起動し (必要な場合)、メイン パッケージを (別の exe として) 起動しますか?

つまり、誰かが以前にそのようなことを試して、フィードバックのガイダンスを得たことがありますか?

ありがとうファルク。

4

1 に答える 1

4

アイデアのセクションで説明したことは、すでに実装されています。適切な NETFXPackageGroupを含めるだけで、すべての変数が自動的に設定されます。たとえば、WiX ツールセットは、Bundleマネージド ブートストラップ アプリケーションを標準的な方法でセットアップします。

<BootstrapperApplicationRef Id='ManagedBootstrapperApplicationHost'>
  <Payload Name='BootstrapperCore.config' SourceFile='WixBA.BootstrapperCore.config' />

  <Payload SourceFile='WixBA.dll' />
  <Payload SourceFile='License.htm' />
</BootstrapperApplicationRef>

チェーンの最初のものは、NETFX 4.0 Web redist への参照です。次のようになります。

<Chain>
  <PackageGroupRef Id='NetFx40Web' />

この参照は、WixNetfxExtension によって満たされます。WixNetfxExtension の重要なコードは、チェーン内のどのパッケージがNETFX であるWixVariablesかを伝えるものです。ManagedBootstrapperApplicationHost

<WixVariable Id="WixMbaPrereqPackageId" Value="NetFx40Web" />
<WixVariable Id="WixMbaPrereqLicenseUrl" Value="$(var.NetFx40EulaLink)" />

(ManagedBootstrapperApplicationHostマネージド BA の読み込みを処理する) は、マシンに NETFX パッケージがまだ存在しない場合、インストールを処理します。

すべてがpre-req BAでどのように機能するかを確認できますsrc\ext\BalExtension\mba\host\host.cppsrc\ext\BalExtension\wixstdba

于 2013-05-09T14:30:43.553 に答える