2013-05-09 1 views
2

Je suis un débutant à graver et apprendre à développer application Bootstrapper Managed (MBA) avec paquet Bundle. Comme MBA nécessite Dot Net Framework 4.x, nous aurions besoin qu'il soit installé sur le système d'exploitation cible avant d'exécuter l'interface gérée. Est-il possible de lancer l'installation .Net framework 4.x avant de lancer l'interface managée de Bootstrapper à partir d'un seul paquet? Serait-il une bonne idée qu'au lieu d'empaqueter dotnet framework 4.x dans un paquet, nous créons un paquet séparé pour dotnet framework 4.xx et ajoutons notre paquet principal (contenant MBA) dans cela aussi , de sorte que d'abord il lancerait l'installation dotnet framework 4.xx (si nécessaire) et ensuite lancerait notre paquet principal (comme un exe séparé)?Graver: Exécuter Bootstrapper Managed où Dot Net Framework 4 n'est pas installé

Je veux dire, Est-ce que quelqu'un a déjà essayé une telle chose avant et a obtenu des conseils de rétroaction?

Remerciements Farrukh.

Répondre

4

Ce que vous avez décrit dans la section Idea est déjà implémenté. Tout ce que vous devez faire est d'inclure le NETFX approprié PackageGroup et toutes les variables sont configurées pour vous. Par exemple, l'application Bundle ensembles de jeu d'outils WiX jusqu'à il est géré bootstrapper de façon standard:

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

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

Et la première chose dans la chaîne est une référence à la netfx 4.0 web Redist. Cela ressemble à:

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

Cette référence est satisfaite par WixNetfxExtension. Le code important dans le WixNetfxExtension est le WixVariables qui indiquent la ManagedBootstrapperApplicationHost quel paquet dans la chaîne est netfx:

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

Le ManagedBootstrapperApplicationHost (qui gère le chargement de votre BA géré) prendra soin d'obtenir le package netfx installé si il n'est pas déjà présent sur la machine.

Vous pouvez voir comment tout cela fonctionne en src\ext\BalExtension\mba\host\host.cpp puis src\ext\BalExtension\wixstdba pour le pré-requis BA.

+0

Oh, c'est génial .. Je vais essayer ça maintenant ... Ça me semble être une bonne solution (avant l'évaluation :)) ... Une question rapide: Qu'en est-il du déconnecté (déjà téléchargé) DotNetFx? installateur à utiliser avec cela? ........... J'ai plus de questions, mais d'abord je vais évaluer la solution et j'attends des réponses à ces questions dans ce .. Merci beaucoup Rob pour aide rapide ... –

+0

Vous venez de trouver "NetFx40Redist" dans \ wix38-sources \ src \ ext \ NetFxExtension \ wixlib \ NetFx4.wxs .... Donc, il devrait être "" si nous avoir un programme d'installation hors ligne comme redist \ dotNetFx40_Full_x86_x64.exe .... Droit? –

+0

Oui, cela semble correct ... et n'hésitez pas à ouvrir plus de questions StackOverflow pour d'autres problèmes. Les questions ciblées avec de bons titres sont mieux trouvées par d'autres, donc les générations futures en profitent aussi. :) –

Questions connexes