使用导入为.dll的UserControl中的设置文件

时间:2014-07-23 22:34:49

标签: c# .net wpf c#-4.0 wpf-controls

我创建了一个简单的" Wpf用户控件库"包含UserControl(文件后面带.cs代码的xaml)和包含简单设置的设置文件。 在最终应用程序中非常需要Settings文件,用户可以轻松更改设置文件中的某些设置,因此我不必创建用于更改简单设置的UI和逻辑。

构建解决方案后,我有一个.dll,一个.pdb和设置文件(.config),其中的设置很容易阅读。

现在,在导入用户控件.dll的最终应用程序中(添加为参考),usercontrol按预期工作,我在设置文件中设置的设置仍然有效,但没有设置文件(因此,调试文件夹中的.config)现在可供用户根据需要轻松更改设置。

那是怎么回事?如何发送用户控件的设置文件以及最终的应用程序?

祝你好运

1 个答案:

答案 0 :(得分:0)

首先,您可能不应该发布尚未在发布模式下构建的内容。

其次,根据我的经验,应用程序只能由.NET配置类自动加载单个可执行应用程序配置文件。

处理此问题的正确方法是记下在DLL的applicationSettings sectionGroup下生成的设置命名空间,并让用户将其插入主应用程序可执行文件.config文件中。

 <configuration>   
   <configSections>
      <sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
         <section name="My.UserControlAssembly.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
      </sectionGroup>
    </configSections>
    ...
    <applicationSettings>
      <My.UserControlAssembly.Properties.Settings>
        ...settings elements would go here...
       </My.UserControlAssembly.Properties.Settings>
    </applicationSettings>
</configuration>

编辑:在进一步调查中,我发现这篇文章告诉您如何设置自己的configSection,以便您可以引用多个文件。但是,它没有指定这是否自动适用于ConfigurationManager类,因此我会尝试使用它,最坏的情况是使用我上面描述的方法。

Is there any way for an App.config file to reference another full config file? (.NET)