Comment installer .NET 4.5 avec un bundle WiX?
J'ai besoin d'inclure Microsoft .NET 4.5 comme une condition préalable avec mon module d'installation, et je le veux aussi automatique que possible. Cependant, .NET devrait pas être enlevé lorsque unistalling. Je pense que j'ai lu à peu près tout sur la façon d'utiliser DetectCondition
et/ou InstallCondition
mais je ne suis pas encore arriver; il est toujours en cours d'exécution .NET de l'installation, ou de ne jamais exécuter.
Voici ma dernière installation:
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"
xmlns:util="http://schemas.microsoft.com/wix/UtilExtension"
xmlns:bal="http://schemas.microsoft.com/wix/BalExtension"
xmlns:netfx='http://schemas.microsoft.com/wix/NetFxExtension'>
<!-- Define minimum .NET Framework version -->
<?define NetFx45MinRelease = 377811?>
...
<Chain>
<PackageGroupRef Id="Netfx45FullPackage"/>
...
</Chain>
<PackageGroup Id="Netfx45FullPackage">
<ExePackage Id="Netfx45Full" Cache="no" Compressed="yes" PerMachine="yes" Permanent="yes" Vital="yes"
SourceFile="..\..\..\..\Environment\InstallerResources\Prerequisites\dotnetfx45_full_x86_x64.exe"
InstallCommand="/passive /norestart"
DetectCondition="NETFRAMEWORK45 >= $(var.NetFx45MinRelease)"
InstallCondition="NOT REMOVE AND (NETFRAMEWORK45 < $(var.NetFx45MinRelease))" />
</PackageGroup>
(Pour certaines raisons, j'ai dû définir NetFx45MinRelease
moi-même, même si elle devrait avoir été inclus avec WixNetFxExtension.)
Comment puis-je obtenir les paramètres corrects?
source d'informationauteur Torbjörn Bergstedt
Vous devez vous connecter pour publier un commentaire.
Je ne suis pas tout à fait sûr de savoir pourquoi vous rencontrez des problèmes, mais je viens d'avoir la même tâche, et il (maintenant 😉 fonctionne comme prévu. C'est, il s'installe .NET 4.5 seulement si nécessaire, et ne peut pas faire une .NET désinstaller lors de la désinstallation du programme d'amorçage dans son ensemble.
Cependant, .NET 4.5 peut être désinstallé individuellement, je pense que c'est bon.
C'est ce que j'ai utilisé (probablement dérivée de l'autre Pile Dépassement de postes):
La chose étrange est que vous avez déjà Permanent="oui", qui est en effet la clé pour garder .NET sur désinstaller.
Une différence, c'est que je n'ai pas explicite "ne PAS SUPPRIMER" dans la InstallCondition, peut-être que c'est plus confus qu'utile de programme d'installation de Windows...?
Je suis à l'aide de WiX 3.7.1224.0, qui est actuellement la dernière.
Un commentaire à TheESJ réponse: même avec la prédéfinis PackageGroupRef, vous pouvez fournir un fichier local pour éviter le téléchargement. Il suffit de le placer dans un "redist" dossier en dessous de votre programme d'amorçage fichier EXE, et il sera pris à partir de là, si présent, sans téléchargement. J'ai trouvé ce comportement hier via le fichier journal après une mauvaise installation.
Vous ne devriez pas besoin de définir la PackageGroup. C'est contenue dans WixNetFxExtension. Voir http://wix.sourceforge.net/manual-wix3/install_dotnet.htm. Tout ce que vous devez faire est d'inclure une référence à WixNetFxExtension dans votre wixproj, puis ajouter le PackageGroupRef à l'un des PackageGroups documenté ici: http://wix.sourceforge.net/manual-wix3/wixnetfxextension.htm à votre chaîne.