2016-04-13 1 views
0

J'ai créé un projet MSI de base dans InstallShield. Je veux réaliser un scénario. Pour cela, je définis une propriété au moment de l'installation en utilisant la fonction installScript MsiSetProperty(). Mais je veux aussi lire la valeur de la même propriété au moment de la désinstallation. J'ai besoin de la valeur de la propriété lors de la désinstallation, qui est définie au moment de l'installation.Comment lire la valeur de la propriété lors de la désinstallation?

Est-il possible de récupérer la valeur de la propriété lors de la désinstallation, qui est définie au moment de l'installation?

Répondre

0

J'ai juste essayé une solution de contournement pour ceci. Je définis la valeur de Registre au moment de l'installation & en lisant cette propriété lors de la désinstallation et en définissant une valeur à la propriété.

0

La lecture d'une propriété lors de la désinstallation revient à la lire lors de l'installation: vous appelez le MsiGetProperty() et, dans un contexte différé, vous devez la passer par la propriété CustomActionData. Notez également que définir une propriété dans un contexte différé ne fait pas grand-chose. Cependant, ce qui vous tracera probablement, c'est que les propriétés, en général, ne sont pas conservées à travers les sessions Windows Installer. Il existe des exceptions, telles que DirProperties pour les composants installés, qui sont automatiquement conservées. Mais la plupart des propriétés sont simplement oubliées lorsque l'action en cours se termine. La recommandation typique est de suivre le 'pattern de propriété remember' qui, en un mot, consiste à sauvegarder la valeur de la propriété dans une clé de registre et à la relire avec une recherche système.

+0

J'ai créé une propriété "PROP123" dans le PropertyManager et ai mis sa valeur à 0. Puis j'ai créé une action personnalisée "CA123" et en ce que je place la valeur de "PROP123" à 1. J'exécute "CA123" au moment de l'installation seulement. Au moment de la désinstallation quand je lis "PROP123", je reçois sa valeur 0. Ici, je veux la valeur 1 à la désinstallation. Alors pouvez-vous s'il vous plaît me décrire comment je peux y parvenir? –