2011-01-21 6 views
2

J'ai une tâche générale: installer .NET Framework 3.5 lors de l'installation de mon produit.Comment installer le package redistribuable de .NET Framework avec Wix?

Je fais ce qui suit:

  1. J'ai créé une action personnalisée X
  2. action personnalisée X démarre un fichier exécutable Y via Process.Start()
  3. Executable Y tue le processus msiexec et exécuter. Package d'installation NET Framework

Voici quelques problèmes: Le programme d'installation de .NET Framework indique que Windows Installer Service n'est pas accessible et demande de mettre fin à toutes les autres installations!

Je pense que la cause en est que la méthode Process.Kill() termine le processus incorrect. Lorsque je tue le processus msiexec via Kill(), le service msiserver n'est PAS STOPPABLE, mais si je termine la configuration en cliquant sur le bouton Annuler, le service msiserver devient STOPPABLE.

Comment puis-je résoudre le problème?

+0

Ceci est un double logique de ceci: http://stackoverflow.com/questions/2335287/what-is-the-best-practise-to-create-msi-with-some-other- child-msi-as-prerequisite –

+0

Je dois utiliser les étapes décrites ci-dessus au lieu de produits tiers tels que dotNetInstaller etc. – Dmitrii

+0

Puis-je demander pourquoi? –

Répondre

2

Voici comment amorcer le framework .NET.

1) Assurez-vous d'avoir les boostrappers .NET 3.5 et Windows Installer 3.1 sur votre machine de build. Ils devraient être installés avec VS. Ils peuvent probablement être trouvés ici: C: \ Program Files (x86) \ Microsoft SDKs \ Windows \ v6.0A \ Bootstrapper \ Packages \ DotNetFX35.

2) Editez le fichier de projet wix. - Faites un clic droit sur le projet, sélectionnez Décharger - Faites un clic droit à nouveau et modifier le wixproj

3) Ajouter le groupe d'articles suivant:

<ItemGroup> 
    <BootstrapperFile Include="Microsoft.Windows.Installer.3.1"> 
    <ProductName>Windows Installer 3.1</ProductName> 
    </BootstrapperFile> 
    <BootstrapperFile Include="Microsoft.Net.Framework.3.5.SP1"> 
    <ProductName>.NET Framework 3.5</ProductName> 
    </BootstrapperFile> 

4) Ajouter ce qui suit à la fin du fichier de projet

<Target Name="AfterBuild"> 
    <GenerateBootstrapper ApplicationFile="$(TargetFileName)" ApplicationName="My Application Name" BootstrapperItems="@(BootstrapperFile)" ComponentsLocation="Relative" CopyComponents="True" OutputPath="$(OutputPath)" Path="C:\Program Files (x86)\Microsoft SDKs\Windows\v6.0A\Bootstrapper\" /></Target> 

5) Maintenant construire. Le fichier setup.exe & résultant doit installer le framework.

Scott

+0

Cela fonctionne comme un charme. – gangt

Questions connexes