Я унаследовал довольно большой проект, состоящий из приложения, написанного на VB6, и нескольких элементов управления DLL и ActiveX, написанных на VB6, VB.NET 1.1 и VB.NET 2. Я хочу изменить одну из настроек для одной из библиотек DLL записано в VB.NET 2, которое находится в файле application.dll.config, но, похоже, не имеет никакого эффекта.
Мое основное приложение VB6 (я назову его Альфа) имеет файл конфигурации (Alpha.exe.cnfig), который содержит настройки, используемые моей библиотекой VB.NET 1.1 DLL (которую я назову Браво). После вызова Браво, Альфа звонит Чарли (моя библиотека VB.NET 2 DLL). Однако, несмотря на то, что я изменил настройки приложения в 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 (моя библиотека VB.NET 1.1)
\ Application \ Controls \ Charlie \ Charlie.dll (моя библиотека VB.NET 2)
\ Application \ Controls \ Charlie \ Charlie.dll.config (этот файл игнорируется Charlie.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 в непосредственно под разделом appSettings (т. Е. Как другой дочерний элемент элемента конфигурации) в Alpha.exe.config, то Bravo.dll завершится ошибкой.
Заранее большое спасибо за любую помощь, которую вы можете оказать.