Environment.CurrentDirectory génère des résultats inattendus lors de l'exécution de l'application installée

De fond:

J'ai construit un programme d'installation de mon application, et tous mes dll et le contenu de fichiers sont correctement copié à la C:\Program Files\MyCompany\MyApp répertoire. Quand je lance mon application à partir de Visual Studio, tout fonctionne très bien. Quand je lance la version installée de mon application, cependant, je reçois un DirectoryNotFoundException. Le problème semble être avec Environment.CurrentDirectory.

Je m'attendais à Environment.CurrentDirectory être...

"C:\\Program Files\\MyCompany\\MyApp"

...mais c'était vraiment...

"C:\\Documents and Settings\\DanThMan"

Ce qui se passe ici? Comment puis-je résoudre ce problème?

Grâce.

EDIT:

Bon, hmm. Ce problème se produit uniquement si je lance le raccourci du Menu Démarrer. Si je lance MyApp.exe directement, tout va bien.

EDIT 2:

Je pense que j'ai obtenu vers le bas de cette maintenant. Dans mon Installateur (qui est un Visual Studio SetupProject), le raccourci du Menu Démarrer a une propriété appelée WorkingFolderqui "Spécifie le dossier dans lequel l'application cible pour le raccourci sera installé." J'avais accidentellement mis WorkingFolder de "Société". Il doit être "Dossier de l'Application". Maintenant que je l'ai réglée correctement, Environment.CurrentDirectory est une fois de plus de travail que prévu. Merci à tous pour votre aide.

EDIT 3:

Cependant, à lire les mises en garde ci-dessous, j'ai décidé d'aller avec le suivant comme un remplacement pour Environment.CurrentDirectory:

System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetEntryAssembly().Location);

source d'informationauteur devuxer | 2009-08-27