将app.config的appsettings部分拆分为两部分

Abb*_*bbi 3 .net c# vb.net

我有一个Windows应用程序,它通过点击一次部署.我在app.config中的appsettings有几个设置.某些设置是特定于部署的,例如文件下载等的Web服务器源.它将随部署区域而变化.某些设置项是特定于应用程序的,在部署期间不会更改.

<appSettings >    
   <add key="key1" value="Value111 changable with region" />
   <add key="Key2" value="Value222 changable with region" />

    <add key="key3" value="Value333 NOT changable with region" />
   <add key="Key4" value="Value444 NOT changable with region" />

 </appSettings > 
Run Code Online (Sandbox Code Playgroud)

现在我需要在两个app.config文件中拆分我的appsettings.我想将key1和key2放在单独的配置文件中.我怎么做.

Jas*_*sen 11

使用appSettings 文件属性并为每个部署区域指定其文件版本.

app.config:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <appSettings file="regionsettings.config">
      <add key="key1" value="default value" />
      <add key="commonKey" value="common value" />
  </appSettings>
</configuration>
Run Code Online (Sandbox Code Playgroud)

regionsettings.config(区域1):

<?xml version="1.0" encoding="utf-8" ?>
<appSettings>
    <add key="key1" value="region 1" />
</appSettings>
Run Code Online (Sandbox Code Playgroud)

regionsettings.config(区域2):

<?xml version="1.0" encoding="utf-8" ?>
<appSettings>
    <add key="key1" value="region 2" />
</appSettings>
Run Code Online (Sandbox Code Playgroud)

或者像Henk建议的那样:

<add key="region1.key1" value="region1key1 value" />
<add key="region2.key1" value="region2key1 value" />
Run Code Online (Sandbox Code Playgroud)

  • 谢谢它终于奏效了.此处还需要添加一件事:确保regionsettings.config的属性"Copy to Output Directory"设置为"Always always".它之后工作. (2认同)