Ok, voici la situation. J'ai écrit un service Windows. Le tester comme une application "console" a montré des résultats prometteurs.Où dois-je mettre des fichiers supplémentaires dans un service Windows?
Malheureusement, je ne sais pas où mettre un fichier. J'ai des données JSON qui sont critiques pour l'application. C'est dans un fichier. Je préférerais ne pas trop entrer dans les détails, mais sachez simplement que cela doit figurer dans un fichier, et c'est essentiel. Ce n'est pas un fichier de configuration, mais c'est définitivement nécessaire.
Quoi qu'il en soit, j'ai ajouté le fichier à mon projet de service Windows. Le problème est, je ne peux pas tout à fait comprendre le bon code et les paramètres à utiliser pour mettre le fichier au bon endroit lorsque le service est installé.
Ceci est seulement le deuxième service Windows que j'ai jamais écrit, et le premier (il y a quelques années) ne nécessitait pas de fichiers supplémentaires.
J'ai écrit le service dans Visual Studio 2015, sur Windows 7. Je vais le tester sur ma machine locale ici au bureau, mais il finira par fonctionner sur une machine de production.
Aide, s'il vous plaît? Des idées sur l'endroit où je devrais mettre le fichier et comment je devrais le référencer dans le code?
J'ai vu un site qui dit que je devrais utiliser ce qui suit:
System.IO.Directory.SetCurrentDirectory(System.AppDomain.CurrentDomain.BaseDirectory);
Mais cela ne semble pas aider quand je l'ai fait:
filePath = Environment.CurrentDirectory + "\\myfile.ext"
Les chemins de fichiers ont jamais vraiment été Forte costume de la mienne dans ces cas.
Toute aide est grandement appréciée.
On dirait qu'il ya trois questions ici: (1) où le fichier doit aller; (2) comment puis-je obtenir l'installateur pour le mettre là; et (3) comment puis-je le référencer dans le code. Si le fichier est en lecture seule, je pense que le placer dans le même répertoire que l'exécutable de service serait judicieux. La manière de procéder dépend de la technologie d'installation que vous utilisez, même si le scénario est si courant qu'il ne devrait pas être difficile. Quant à l'accès dans le code, ce que vous avez fait devrait fonctionner je pense, mais il n'y a pas vraiment besoin d'impliquer le répertoire courant, juste construire le chemin à partir de '.BaseDirectory' –