Не удается получить доступ к файлу app.config другого проекта - PullRequest
2 голосов
/ 01 марта 2012

В настоящее время у меня есть 2 приложения, App1 и App2.

В App1 есть файл app.config, в котором я храню строку InstallDir.Я могу получить доступ к этому из App1 нормально, используя Properties.Settings.Default.InstallDir.Это прекрасно работает, но мне нужно иметь доступ к этому из App2.

Я изменил доступность с Internal до Public в VS.Когда я пытаюсь получить доступ к нему из App2, я добавляю ссылку на App1 и использую using App1; и App1.Properties.Settings.Default.InstallDir, но это ничего не возвращает.Он не выдает исключение, он просто возвращает пустую строку.

Любые идеи с благодарностью.

Ответы [ 4 ]

3 голосов
/ 01 марта 2012

Каждое приложение имеет свой собственный файл app.config, из которого оно читает конфигурацию во время выполнения. Вы обратились к App1 в App2, что позволяет вам получить доступ к переменной App1.Properties.Settings.Default.InstallDir, но во время выполнения, поскольку в app.config соответствующего приложения нет соответствующего значения, возвращается ноль.

2 голосов
/ 01 марта 2012

Если вы хотите получить доступ к некоторым (я предполагаю) общим параметрам конфигурации между двумя проектами, создайте обертку для конфигурации в первом (скажем, static классе) и используйте его со своего второгопроект.

0 голосов
/ 01 марта 2012

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

посмотрите на Использование ConfigurationManager для загрузки конфигурации из произвольного местоположения для некоторой помощи в этом.

0 голосов
/ 01 марта 2012

Вы можете написать свой собственный код, чтобы переключать чтение другого файла конфигурации, даже если вы добавите App2 в качестве ссылки, он не будет магически предоставлять вам доступ, прочитаете его как обычный файл или используете ConfigurationManager.OpenMappedExeConfiguration: http://msdn.microsoft.com/en-us/library/ms134269.aspx

...