Приложение заставки не читает App.Config - PullRequest
3 голосов
/ 20 января 2010

Я написал заставку на C #, но всякий раз, когда я запускаю его в режиме предварительного просмотра или запускаю, он выдает исключение. Когда я дважды щелкаю его в Windows \ System32, он работает нормально. С отладчиком Visual Studio я подозревал, что он не читает файл .config приложения, который также находится в Windows \ System32.

Я думаю, что когда rundll32.exe запускает экранную заставку, файл app.config опускается. Есть ли способ заставить его загрузить?

Спасибо

Ответы [ 5 ]

2 голосов
/ 20 января 2010

Спасибо тем, кто порекомендовал SysInternals 'Process Monitor. Используя это, я увидел, что он ищет 8-буквенную версию имени файла конфигурации. Это первые шесть букв файла SCR, а затем ~ 1.scr, потому что это название процесса. Все, что мне нужно сделать, это переименовать файл или, скорее, сохранить 2 его версии, поскольку я не хочу менять имя файла scr.

1 голос
/ 20 января 2010

Насколько я помню из моего предыдущего опыта, заставки запускаются с установленным для "user directory" значением% userprofile%. Вы можете проверить, верно ли это или нет, временно поместив свой файл конфигурации в этот каталог. И если это так, то вам нужно добавить код для чтения конфигурации из каталога, в котором находится хранитель экрана, а не из текущего каталога.

0 голосов
/ 20 января 2010

Если ни один из советов на данный момент не работает, вы тоже можете

  • добавьте свою конфигурацию в файл machine.config или
  • использовать пользовательский файл для конфигурации
0 голосов
/ 20 января 2010

Я предполагаю, что ваше приложение запускается с другим рабочим каталогом. Из этого поста (прочитайте) кажется, что вам нужно создать свой обычный исполняемый файл, переименовать его в * .scr, щелкнуть правой кнопкой мыши по файлу и выбрать «установить», который переместит оба в каталог system32.

Возможно, функция "установить" изменяет способ вызова вашей заставки или того, где она должна выглядеть как рабочий каталог.

0 голосов
/ 20 января 2010

Используйте Process Monitor, чтобы увидеть, какие конфигурационные файлы пытается прочитать заставка.

...