0

Je suis en train de créer un exécutable d'installation à l'aide du modèle de projet d'installation de Visual Studio 2015.Comment lancer un exécutable spécifié dans une action personnalisée uniquement lorsqu'il n'est pas déjà installé sur l'ordinateur de l'utilisateur?

J'ai ajouté un exécutable externe dans le système de fichiers de mon paquet que l'utilisateur doit installer pour pouvoir exécuter mon programme. Ensuite, j'ai ajouté ce package en tant qu'action personnalisée sur Commit.

Je veux que mon package d'installation reconnaisse si cet exécutable externe est déjà installé sur l'ordinateur de l'utilisateur en consultant le registre de recherche d'une certaine structure de dossiers sur l'ordinateur (la méthode à vérifier n'est pas encore définie).

Comment puis-je configurer ce type de vérification pour les actions personnalisées? J'ai vu qu'il y a une propriété Condition en cliquant sur le .EXE dans la fenêtre Custom Actions, mais tout ce que je peux trouver sur cette propriété est that, ce qui ne répond pas vraiment à mon problème.

Répondre

1

Les installations VS offrent une recherche de registre, et cette recherche définit un nom de propriété que vous définissez (en majuscules). Si l'entrée de registre existe, ce qui signifie que vous n'avez pas besoin d'exécuter le programme, vous attribuez à l'action personnalisée une condition de NOT FOUNDREGISTRY en supposant que FOUNDREGISTRY est le nom de la propriété.

Cela dit, si ce programme est un redistribuable qui installe quelque chose alors:

  1. Ils sont généralement assez intelligents pour savoir s'ils ont besoin de faire quoi que ce soit ou non, et qui comprend de voir si ce qui est déjà installé est une version plus ancienne, donc ils devraient fonctionner de toute façon parce que c'est une version plus récente. Il est donc préférable de l'exécuter de toute façon. Si l'exécutable encapsule une installation MSI, il échouera car vous ne pouvez pas installer une installation MSI avec une action personnalisée dans une configuration VS MSI.