Справочная информация:
Я собрал установщик для своего приложения, и все мои DLL-файлы и файлы содержимого правильно копируются в каталог C:\Program Files\MyCompany\MyApp
. Когда я запускаю свое приложение из Visual Studio, все отлично работает. Однако, когда я запускаю установленную версию моего приложения, я получаю DirectoryNotFoundException
. Кажется, проблема в Environment.CurrentDirectory
.
Я ожидал, что Environment.CurrentDirectory
будет ...
"C:\\Program Files\\MyCompany\\MyApp"
... но это было на самом деле ...
"C:\\Documents and Settings\\DanThMan"
Что здесь происходит? Как мне это решить?
Спасибо.
EDIT:
Хорошо, хм. Эта проблема возникает только при запуске ярлыка в меню «Пуск». Если я запускаю MyApp.exe напрямую, все в порядке.
РЕДАКТИРОВАТЬ 2:
Я думаю, что я дошел до сути этого сейчас. В моем установщике (который является программой установки Visual Studio) ярлык в меню «Пуск» имеет свойство WorkingFolder
, которое «указывает папку, в которую будет установлено целевое приложение для ярлыка». Я случайно установил WorkingFolder
в «MyCompany». Это должна быть «папка приложения». Теперь, когда я правильно настроил, Environment.CurrentDirectory
снова работает, как и ожидалось. Спасибо за вашу помощь.
РЕДАКТИРОВАТЬ 3:
Однако, прочитав приведенные ниже предупреждения, я решил использовать следующее в качестве замены Environment.CurrentDirectory
:
System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetEntryAssembly().Location);