Я унаследовал довольно большой проект, состоящий из приложения, написанного на VB6, и нескольких DLL и элементов управления ActiveX, написанных на VB6, VB.NET 1.1 и VB.NET 2. Я хочу изменить одну из настроек для одной из DLL, написанных на VB. .NET 2, который находится в его файле application.dll.config, но, похоже, это не имеет никакого эффекта.
Мое основное приложение VB6 (я буду называть его Alpha) имеет файл конфигурации (Alpha.exe.cnfig), который содержит настройки, используемые моей библиотекой DLL VB.NET 1.1 (которую я буду называть Bravo). После вызова Браво Альфа вызывает Чарли (моя DLL VB.NET 2). Однако, несмотря на то, что я изменил настройки приложения в Charlie.dll.config в подкаталоге, где находится DLL, это не дало никакого эффекта. Я попытался поместить настройки Чарли в файл конфигурации Alpha, но это приводит к сбою Bravo с ошибкой автоматизации (я думаю, это связано с тем, что формат файлов конфигурации изменился с .NET 1.1 и .NET 2).
Ниже приведена упрощенная структура каталогов и пример расположения файлов:
\Application\Alpha\Alpha.exe (мое приложение VB6)
\Application\Alpha\Alpha.exe.config (этот файл конфигурации используется Bravo.dll)
\Application\Assembly\Bravo.dll (моя DLL VB.NET 1.1)
\Application\Controls\Charlie\Charlie.dll (моя DLL VB.NET 2)
\Application\Controls\Charlie\Charlie.dll.config (этот файл игнорируется Charlie.dll)
Я перекомпилировал свою DLL VB.NET 2 с измененными настройками по умолчанию, я сделал это, чтобы убедиться, что в самой настройке нет ошибки кода, и это работает нормально. Тем не менее, я хочу иметь возможность сообщить клиенту, как изменить файл конфигурации, чтобы он мог настроить его так, как он хочет, без необходимости перекомпилировать DLL каждый раз, когда ему нужны другие настройки.
Я хочу изменить только app.config, а не machine.config или user.config.
Вот пример Alpha.exe.config:
<configuration>
<appSettings>
<add key="MySetting" value="MyValue" />
</appSettings>
</configuration>
А вот пример Charlie.dll.config
<configuration>
<applicationSettings>
<Charlie.My.MySettings>
<setting name="MySetting" serializeAs="String">
<value>MyValue</value>
</setting>
</Charlie.My.MySettings>
</applicationSettings>
</configuration>
Если я попытаюсь поместить раздел applicationSettings under непосредственно под разделом appSettings (т. е. как еще один дочерний элемент элемента конфигурации) в Alpha.exe.config, тогда Bravo.dll выйдет из строя.
Заранее большое спасибо за любую помощь, которую вы можете предоставить.