在另一个解决方案中使用时,无法从DLL读取配置

时间:2011-10-10 06:16:33

标签: dll configuration

我有一个Dll被添加到另一个解决方案中,现在我的代码用于读取配置文件在DLL

但我的配置文件是当前的解决方案

什么应该是正确的解决方案?

2 个答案:

答案 0 :(得分:0)

.NET中的DLL不能有自己的配置 - your.dll.config文件将被使用和解释。

.NET配置的基本前提是主机应用程序(您的主要EXE)应在其app.exe.config文件中具有所有配置。所以你需要复制&将您的DLL配置粘贴到主应用程序的app.config文件中,您应该没问题。

请参阅Chris Ammerman的this other SO question with a great, lengthy explanation,了解为什么DLL配置并不像最初看起来那么简单....

答案 1 :(得分:0)

如果您正在讨论在另一个VS项目或解决方案中使用.NET程序集及其配置,则可以将配置放在新项目的配置文件中。

如果您使用的是自动生成的强类型设置部分,则还需要复制整个设置部分和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;请阅读他引用的文章。