Не удается прочитать конфигурацию из DLL при использовании в другом решении - PullRequest
0 голосов
/ 10 октября 2011

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

Но мой файл конфигурации находится в текущем решении

какое должно быть правильное решение?

Ответы [ 2 ]

0 голосов
/ 10 октября 2011

Если вы говорите об использовании сборки .NET и ее конфигураций в другом проекте или решении VS, вы можете поместить эти конфигурации в файл конфигурации нового проекта.

Если вы используете автоматически сгенерированный раздел со строго типизированными настройками, вам необходимо скопировать весь раздел настроек и объявление configSections для него:

<configSections>
    <sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
        <!-- VB-generated settings section -->
        <section name="HappyFunTime1.My.MySettings" type="System.Configuration.ClientSettingsSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
        <!-- C#-generated settings section -->
        <section name="HappyFunTime2.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false"/>
    </sectionGroup>
</configSections>

<applicationSettings>
    <HappyFunTime1.My.MySettings>
        <setting name="MySetting1" serializeAs="String">
            <value>Joy!</value>
        </setting>
    </HappyFunTime1.My.MySettings>
    <HappyFunTime2.Properties.Settings>
        <setting name="MySetting1" serializeAs="String">
            <value>Joy!</value>
        </setting>
    </HappyFunTime2.Properties.Settings>
</applicationSettings>

Если вы используете appSettings, вы можете скопировать их в раздел appSettings нового проекта.

С учетом сказанного я согласен с marc_s; пожалуйста, прочитайте статью, на которую он ссылается.

0 голосов
/ 10 октября 2011

DLL в .NET не могут иметь собственную конфигурацию - этот файл your.dll.config будет не использоваться и интерпретироваться.

Основная предпосылка в конфигурации .NET заключается в том, что хост-приложение (ваш основной EXE-файл) должно иметь всю свою конфигурацию в своем файле app.exe.config. Поэтому вам нужно скопировать и вставить вашу конфигурацию DLL в файл app.config основного приложения, и все будет в порядке.

См. этот другой SO вопрос с большим и длинным объяснением Криса Аммермана о том, почему конфигурация DLL не так тривиальна, как может показаться на первый взгляд ...

...