2010-05-04 6 views
1

Pour prendre en charge Windows Vista dans mon jeu, j'ai changé si les fichiers de sauvegarde sont placés (sous Fichiers programme dans Mes documents) pour les installations XP et Vista.Comment faire pour déplacer le contenu utilisateur dans Wix Installer

Maintenant, je voudrais être en mesure de déplacer les utilisateurs XP actuels enregistrer les jeux de l'ancien emplacement au nouvel emplacement.

Je pense que je peux bien déclencher ce via la mise à niveau de vérification du code comme ceci:

<Upgrade Id="PLACE-GUID-HERE"> 
    <UpgradeVersion OnlyDetect="yes" Minimum="$(var.ProductVersion)" IncludeMinimum="no" Property="NEWERVERSIONDETECTED" /> 
    <UpgradeVersion OnlyDetect="no" Minimum="1.1.0" IncludeMinimum="yes" Maximum="$(var.ProductVersion)" IncludeMaximum="no" Property="OLDERVERSIONBEINGUPGRADED" /> 
    <UpgradeVersion OnlyDetect="no" Maximum="1.1.0" IncludeMaximum="no" Property="MOVESAVEFILESUPGRADED" /> 
</Upgrade> 

où 1.0.x était l'ancienne et 1.1.x sera la nouvelle façon, je pouvais donc faire quelque chose une action personnalisée basée sur MOVESAVEFILESUPGRADED, mais le cœur du problème, je ne vois pas comment déplacer non-installés fichiers d'un endroit à l'autre.

Répondre

1

Je ne pense pas qu'il existe une action personnalisée intégrée qui fera cela.Si vous écrivez votre propre d'utiliser un dll, mais le fichier vbscript ou bat fera également le travail.

This might help

+0

Cette option vbscript semble être exactement ce dont j'ai besoin –

2

utiliser l'élément CopyFile. Une action personnalisée est trop lourde et les actions personnalisées VBScript ne sont pas fiables. Voir http://www.joyofsetup.com/2007/06/07/when-vbscript-and-jscript-custom-actions-are-even-more-evil/.

+0

De bons points de l'article de blog concernant les lacunes des scripts. De plus, le système sur lequel je déplace vraiment les configurations est XP et non Vista, il est donc logique de le faire dans le processus de jeu, plutôt que dans l'installateur. Je pensais à l'installateur, car il s'agit d'un processus unique, le verset doit vérifier chaque fois couru. –

Questions connexes