как заставить мое приложение читать конфигурацию приложения вместо machine.config? - PullRequest
5 голосов
/ 26 ноября 2011

У меня есть слово add в приложении, созданном на c #, которое обращается к веб-службе и прекрасно работает, если установлено вне папки Program Files.странная вещь в том, что когда я устанавливаю это в папку Program Files, клиент не может прочитать конфигурацию в [application] .dll.config и выдает ошибку, как показано ниже:

"Не удалось найти элемент конечной точки по умолчаниюконтракт ссылок [..] в разделе конфигурации клиента ServiceModel. Это может быть связано с тем, что для вашего приложения не найден файл конфигурации, или в элементе клиента не найден элемент конечной точки, соответствующий этому контракту. "

Я прочитал эту статью, и кажется, что это не решает мою проблему. Не удалось найти элемент конечной точки по умолчанию

Я использую Windows 7, кстати, и не тестировал на другие ОС.

Обновление: после прочтения вышеуказанной ссылки я пыталсяпереместите конфигурацию в machine.config, и она работает, но как мне заставить мое приложение читать конфигурацию приложения вместо machine.config?

Ответы [ 3 ]

12 голосов
/ 27 ноября 2011

Если вы используете VSTO 4 с пакетом обновления 1 (SP1), возможно, у вас возникла проблема, описанная в этом блоге: http://msdnrss.thecoderblogs.com/2011/06/vsto-4-0-sp1-will-cause-a-vsto-addin-to-not-find-its-config-file/ Решение состоит в том, чтобы изменить значения реестра для вашего служебного надстройки с:

Manifest=”C:\Program Files\<Path>\WordAddIn.vsto|vstolocal”  

до:

Manifest=”file:///C:\Program Files\<Path>\WordAddIn.vsto|vstolocal“ 
0 голосов
/ 26 ноября 2011

Если ваша библиотека.dll вызывается из приложения app.exe, у вас должен быть app.exe.config, а не library.dll.config.

0 голосов
/ 26 ноября 2011

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

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

Когда вы создавали и развертывали свое приложение в Program Files, копировалась ли конфигурация приложения вместе с ним?Вы установили свойство «Копировать в выходной каталог»?

...