4 votes

Comment ajouter le dossier de l'application à %PATH% après l'installation (VS Setup Project)

Je cherche un moyen simple d'inclure le dossier d'installation d'une application dans une variable d'environnement %PATH% une fois l'installation terminée.

Visual Studio 2005/2008/2010, Projet d'installation.

Merci de votre attention.

2voto

Christian Points 524

C'est triste, mais il semble que vous ayez raison de dire qu'il faut coder une classe pour l'action personnalisée. L'exemple de mise en œuvre a disparu. Voir ci-dessous pour une alternative.

2voto

ickydime Points 746

Il s'agit d'une vieille question, mais elle figure toujours en bonne place dans les résultats de Google.

Le lien dans la réponse acceptée est maintenant cassé.

Cependant, vous pouvez trouver une question dupliquée (posée plus tard) qui a encore des réponses correctes ici : GetEnvironmentVariable() et SetEnvironmentVariable() pour la variable PATH

J'ai signalé cette question comme étant en double, mais en attendant qu'elle soit close, voici le code suivant qui a fonctionné pour moi :

string keyName = @"SYSTEM\CurrentControlSet\Control\Session Manager\Environment";
//get non-expanded PATH environment variable            
string oldPath = (string)Registry.LocalMachine.CreateSubKey(keyName).GetValue("Path", "", RegistryValueOptions.DoNotExpandEnvironmentNames);
//set the path as an an expandable string
Registry.LocalMachine.CreateSubKey(keyName).SetValue("Path", oldPath + ";%MYDIR%",    RegistryValueKind.ExpandString);

J'ai remplacé %MYDIR% par le chemin d'accès à l'application.

En outre, vous devrez créer une action personnalisée pour héberger ce code et le placer dans la fonction "commit".

0voto

PhilDW Points 17310

Le principal problème est que les configurations de Visual Studio ne prennent pas en charge la table d'environnement de l'installateur Windows qui peut faire tout cela avec PATH et d'autres variables d'environnement. La table d'environnement du MSI n'est pas si complexe, il vaut donc la peine d'utiliser un éditeur MSI (comme Orca) pour apprendre à l'utiliser, puis d'automatiser la mise à jour du MSI avec une étape post-construction avec un script (comme WiRunSql.vbs dans le SDK Windows) pour automatiser la mise à jour.

Alternativement, apprenez suffisamment de WiX pour créer un module de fusion contenant les variables d'environnement dont votre configuration a besoin, et ajoutez-le à votre configuration Visual Studio.

L'un ou l'autre de ces choix est préférable à l'écriture d'un code d'exécution qui nécessite de veiller à ne pas détruire les variables d'environnement et qui ne fonctionne pas pour les variables d'utilisateur dans le cadre d'une installation par tout le monde.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X