在其他解决方案中使用时无法从DLL读取配置

在其他解决方案中使用时无法从DLL读取配置,dll,configuration,Dll,Configuration,我有一个Dll,它被添加到另一个解决方案中,现在我读取配置文件的代码位于Dll中 但我的配置文件在当前解决方案中 正确的解决方案应该是什么?NET中的DLL不能有自己的配置-您的.DLL.config文件将不会被使用和解释 .NET配置的基本前提是,主EXE的主机应用程序的所有配置都应该在其app.EXE.config文件中。因此,您需要将您的DLL配置复制并粘贴到主应用程序的app.config文件中,这样您就没事了 Chris Ammerman解释了为什么DLL配置不像一开始看起来那么简单…

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

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


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

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

.NET配置的基本前提是,主EXE的主机应用程序的所有配置都应该在其app.EXE.config文件中。因此,您需要将您的DLL配置复制并粘贴到主应用程序的app.config文件中,这样您就没事了


Chris Ammerman解释了为什么DLL配置不像一开始看起来那么简单……

如果您正在谈论在另一个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_的观点;请务必阅读他引用的文章。

谢谢,问题解决了!我的xml有问题,正在查找配置部分: