Question

Dans VS2008, j'ai écrit un service c #, un programme d'installation et un package d'installation pour l'installer. Le service doit charger un fichier XML pour fonctionner. Où est le meilleur endroit pour placer ce fichier dans les différents dossiers du système de fichiers proposés par le projet de configuration du VS, et comment puis-je faire référence à ces chemins à partir de mon code?

Merci

[Je dois signaler que le service s'exécute en tant que LocalService, ce qui signifie que le dossier de données d'application offert par le "Dossier de données d'application de l'utilisateur"). L’élément du projet de configuration du VS n’est pas accessible, même lorsque " Installer pour tous les utilisateurs " est utilisé lors de l'installation. Je pourrais facilement en parler, mais j'aimerais comprendre les meilleures pratiques]

Était-ce utile?

La solution

Je ne suis pas sûr du meilleur emplacement pour stocker le fichier XML. Je ne pense pas que cela importera beaucoup. Mais si vous devez obtenir un chemin de dossier spécial dans le système, vous pouvez utiliser la classe Environment pour le faire. La ligne de code suivante récupère le chemin du Program Files:

string path = Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles);

Autres conseils

Pour lire le chemin d'installation utilisé par le programme d'installation créé à partir du projet d'installation:

1) Ouvrir " Actions personnalisées " éditeur dans votre projet d'installation

2) Ajoutez une action personnalisée à partir de votre assembly où se trouve votre classe d'installation (si vous ne l'avez pas déjà fait)

3) Sélectionnez cette action personnalisée et ajoutez / myKey = "[[TARGETDIR] \" à CustomActionData dans la grille de propriétés

4) Dans votre classe d’installation, vous pouvez accéder à votre valeur de la manière suivante: Context.Parameters [" myKey "]] dans la substitution de votre méthode en fonction de votre choix à l’étape 2

C'est une très vieille question, mais comme je ne suis pas d'accord avec la réponse acceptée, au moins si le fichier XML sera mis à jour par le programme, je le posterai quand même.

Ce que je fais lors de l'installation d'un programme de type serveur (service Windows ou autre programme non spécifique à l'utilisateur) consiste à installer un fichier de paramètres XML par défaut ou un modèle dans les fichiers de programme avec le programme. Mais je n’essaie jamais d’écrire dans ce fichier - c’est généralement interdit.

Au lieu de cela, lors de l’initialisation du programme, je teste si le fichier a déjà été copié dans un sous-dossier que je crée sous C: \ ProgramData, c.-à-d., "C: \ ProgramData \ monSociété \ MonProgramName \ mesParamètresFichier.xml". (Trouvez C: \ ProgramData en utilisant Environment.SpecialFolder.CommonApplicationData - voir ici: http://msdn.microsoft.com/en-us/library/system.environment.specialfolder.aspx ). Si le fichier de paramètres XML existe déjà, il suffit de l'ouvrir et de l'utiliser: il est accessible en écriture. S'il n'existe pas, je crée les sous-dossiers si nécessaire et copie le fichier de paramètres XML modèle à partir de Program Files. Cette opération doit être effectuée une seule fois et uniquement lors de la première exécution du programme après l'installation.

Voir ici pour plus d'informations: En tant que développeur, comment utiliser les dossiers spéciaux de Windows Vista (et Windows 7)?

Vous pouvez toujours utiliser le registre.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top