Чтение app.config проекта VB6 из библиотеки C # dll

Мне нужно создать библиотеку DLL C # .NET, которая может считывать все конфигурации проекта из файла конфигурации.

Основной проект был написан на VB6, который вызывает мою библиотеку C # DLL.

Я создал тестовый метод, который возвращает кабельную строку, и вызов работает правильно, поэтому интеграция VB6 с C # работает.

Моя проблема в том, что я использую класс System.Configuration.ConfigurationManager для чтения файла конфигурации (App.config). Он работает, если вызов поступает из тестового проекта C #, но не работает, если вызов поступает из проекта VB6.

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


person TeoVr81    schedule 08.06.2016    source источник
comment
файл конфигурации находится в формате xml, я думаю, что xmlreader поможет   -  person DarkMakukudo    schedule 08.06.2016
comment
Файл конфигурации принадлежит программе .NET exe, а приложение VB6 его не имеет. Не то чтобы вы не могли его дать, назовите его yourvb6.exe.config, где yourvb6 - это имя вашего исполняемого файла VB6. Дополнительные обручи, через которые вам придется пройти, если вы попытаетесь отладить его в VB6 IDE. По-прежнему совершенно неясно, почему это может быть полезно, если сам код VB6 не использует его.   -  person Hans Passant    schedule 08.06.2016


Ответы (2)


Проблема решена: я попытался переименовать App.config в myVB6AppName.exe.config, но ничего не вышло. Решение заключается в том, чтобы включить файл myVB6AppName.exe.config в проект VB6 в качестве документа. Теперь это работает!

person TeoVr81    schedule 08.06.2016

Если вы используете VB6 в режиме отладки, не забудьте поместить свой app.config как VB6.exe.config в папку, где находится VB6.exe.

person blackcat    schedule 08.06.2016
comment
нет, я скомпилировал и сгенерировал exe-файл, который находится по тому же пути, что и файл конфигурации - person TeoVr81; 08.06.2016
comment
Так что в этом случае ConfigurationManager должен работать нормально. Конечно, вы переименовали свой app.config в YourVB6ApplicationName.exe.config? - person blackcat; 08.06.2016
comment
Рассмотрите возможность использования Process Monitor technet.microsoft.com/en-us/sysinternals/processmonitor. aspx, чтобы определить фактический путь к файлу конфигурации, который пытается использовать ваше приложение. Это может сэкономить много времени на догадки - person OldBoyCoder; 08.06.2016