Je voudrais afficher le numéro de série dans le formulaire CustomerInfo (qui a été capturé à partir de la première installation et installé dans le registre) dans les deuxième, troisième, etc installations lorsque la mise à niveau est simplement une modification de version mineure (ou un correctif). Est-ce quelque chose qui peut être fait dans le projet de déploiement VS et/ou WIX via une action personnalisée (j'ai une méthode C++ pour extraire le SerialNumber du registre), MSI config (en éditant une ou plusieurs tables via say Orca), ou sinon
Cordialement
TravisVS ou WIX MSI installer - afficher le numéro de série de la première installation
Répondre
Personnellement je fais toujours PerMachine installe et ne prennent pas la peine de montrer la boîte de dialogue d'information des clients. Si une application veut avoir une licence, il est préférable de le faire dans l'application lors de la première exécution.
Si vous voulez vraiment le faire dans le MSI, vous avez beaucoup de travail devant vous. MSI ne conserve pas les propriétés d'une transaction à l'autre, vous devrez donc le faire vous-même. Voir:
The WiX toolset's "Remember Property" pattern
J'ai un projet open source appelé IsWiX. Il inclut un modèle de projet Visual Studio qui crée un cadre de projet d'installation. Une partie de cette structure montre comment insérer une boîte de dialogue personnalisée, puis crée un composant pour gérer la propriété remember pour le contrôle de cette boîte de dialogue. Vous pouvez trouver la source here.
Je vais passer la partie WiX couverte par Chris. Pour ce faire, dans un projet VS, vous devez utiliser la boîte de dialogue Informations client, ajoutée à partir de la liste des boîtes de dialogue prédéfinies supplémentaires, et utiliser le composant SerialNumberTemplate. Cela définit la propriété ProductID qui est la façon dont vous êtes censé faire des numéros de série. Ainsi, vous pouvez créer un élément de registre dans l'IDE de Visual Studio qui a la valeur [ProductID] pour l'enregistrer quelque part personnel. Le « officiel » façon de saisir pour un produit installé est MsiGetProductInfo() ou équivalent passer le ProductCode et en demandant « ProductID » comme l'indique ici:
http://msdn.microsoft.com/en-us/library/aa370130(v=vs.85).aspx
Pour résumer, si le paquet utilise le mécanisme officiel PIDKEY/ProductID (comme VS et peut-être WiX) vous n'avez pas besoin de le sauvegarder vous-même et vous pouvez l'obtenir via MsiGetProductInfo() ou un équivalent de code scipt/managé.
Si vous souhaitez afficher ce SerialNumber précédent dans une configuration VS dans le formulaire d'informations client standard lors d'une mise à niveau, je ne pense pas que vous puissiez le faire. Il n'y a pas de mécanisme pour entrer dans ces formulaires. Si vous enregistrez le SerialNumber en mode privé, vous pouvez essayer une recherche de registre pour votre numéro de série enregistré et le stocker dans la propriété PIDKEY pour voir si elle s'affiche, cela peut fonctionner car la propriété PIDKEY est la source de cette valeur.
- 1. MSI installer VS 2008
- 2. NSIS Vs WiX Vs anyother Installation Package
- 3. MSI Installer erreur-localisation de la boîte de dialogue (WiX)
- 4. Avoir une chaîne dans un numéro de version MSI/WiX
- 5. MSI installer, Wix et taille de boîte de dialogue
- 6. WiX: fichiers MSI multiples?
- 7. Installation de WiX 3.5 avec WiX 3.0
- 8. Comment installer deux packages MSI avec un package MSI unique à l'aide de WIX?
- 9. sim numéro de série vs imsi
- 10. Compression maximale d'une installation MSI en utilisant WIX
- 11. Wix installation silencieuse de MSI pouvons-nous arrêter la création de répertoire
- 12. Installation Wix
- 13. Comment installer des MSI spécifiques dans WiX/Burn
- 14. Wix Installer Erreur 2343
- 15. Installation de plusieurs composants avec un seul msi
- 16. VBScript pour actualiser le bureau dans Wix ou MSI
- 17. .NET msi installer version
- 18. WIX - Conditions pour les actions/composants dépendant de la première installation ou de la mise à niveau
- 19. WIX MSI - PROPERTY override priorité
- 20. msi installer - le service ne démarre pas
- 21. Wix pour installer plusieurs applications
- 22. Installer le service Windows sans utiliser InstallUtil ou Installation Installation
- 23. Wix Burn Loose Fichier Installation
- 24. Annuler un MSI sans afficher la boîte de dialogue "Installation interrompue"
- 25. Wix: Installation d'un composant tout en réparer ou réinstaller
- 26. NUMÉRO multiple dans le numéro de série
- 27. Wix passer option msi pour la réparation
- 28. Échec (partiel) Installation de MSI générée par WiX à partir d'une invite de commande élevée
- 29. créer msi en utilisant wix
- 30. Installation de l'extension Namespace avec Microsoft WIX
Merci beaucoup pour la réponse rapide Chris - le motif décrit dans l'article semble bon - je vais essayer –
Salut Chris - J'ai implémenté le motif dans l'article et ça marche bien - la seule question que j'ai est parle d'un niveau de machine Vs installant le niveau d'utilisateur - c.-à-d. persistant le numéro de série à HKCU Vs HKLM. Le problème est que je ne le saurai pas à l'avance car c'est une option dans le processus d'installation - ai-je besoin de deux sections différentes dans mon fichier WIX pour accommoder: "Package InstallScope = 'perUser'" et "Package InstallScope = 'perMachine '' avec les emplacements de registre correspondants (HKCU et HKLM resp.) –
Avez-vous vraiment, vraiment besoin de supporter une installation par utilisateur? Ce modèle est très difficile à utiliser dans un environnement d'entreprise et convient mieux lorsque vous avez des applications «virales» qui diffusent le bouche à oreille et sont installées par des utilisateurs sans droits d'administrateur. Dans cette situation toutes les ressources doivent aller des endroits où ils ont la permission.Typiquement, cela signifie HKCU au lieu de HKLM. Dans toutes mes années et centaines d'installateurs écrits, je n'ai jamais eu une analyse de rentabilité valable pour un. Je supprime simplement l'option et construit le MSI pour être perMachine. –