如何分享App.config?

时间:2009-01-08 22:18:27

标签: .net visual-studio

如何在Visual Studio解决方案中的多个项目之间共享/链接App.config或Web.config?

4 个答案:

答案 0 :(得分:36)

在从Visual Studio的解决方案资源管理器获得的添加现有项对话框中,您可以将指向磁盘上其他文件的链接添加到项目中。为此,您必须点击添加按钮右侧的向下箭头,然后选择添加为链接

答案 1 :(得分:7)

来自Microsoft的

Another approach

  

使用<appSettings>元素的fileattribute指定   外部文件,它将定义公共<appSettings>元素。

     

外部文件将具有与app.config相同的架构   文件,但根节点必须为<appSettings>   而不是<configuration>

     

创建通用配置文件:

     
      
  1. 在“文件”菜单上,指向“新建”,然后单击“文件”。
  2.   
  3. 在“新建文件”对话框中,执行以下操作:

         

    一个。在“类别”窗格中,选择“常规”     湾在“模板”窗格中,选择“XML文件”     C。单击“打开”按钮以创建新的通用配置设置文件。

  4.   
  5. 添加新的<appSettings>元素。

  6.   
  7. 使用<appSettings>元素在<add>节点中根据需要添加尽可能多的常用配置设置,方法与使用   任何正常的app.config文件。

  8.   
  9. 保存配置文件。

  10.         

    在每个项目中指定通用配置文件

         
        
    1. 打开每个客户端项目的app.config文件。

    2.   
    3. 导航到<appSettings>节点中的<configuration>元素。如果元素不存在,请添加一个新元素。

    4.   
    5. 将新属性文件添加到<appSettings>元素,并指定公共配置文件的相对路径作为其值。
        客户端项目现在可以访问常用配置   设置。

    6.         

      示例

           

      以下示例显示如何在外部文件中定义通用配置设置。

              <?xml version="1.0" encoding="utf-8" ?>
              <appSettings>
                  <add key="commonSetting1" value="MyApplication1" />
                  <add key="commonSetting2" value="MySetting" />
              </appSettings>
      
           

      以下示例显示如何在项目的app.config文件中指定公共配置文件的路径。

              <?xml version="1.0" encoding="utf-8" ?>
              <appSettings file=”c:\commonSettings.config”>
                  <add key="myAppSpecificSetting" value="Setting1" />
              </appSettings> 
      
           

      如示例所示,客户端项目的app.config文件可以有   中指定的其他设置   <appSettings>元素除了指向common之外   配置文件。如果多次指定相同的设置,   使用指定的最后一个值。如果指定了相同的设置   常用配置文件和客户端项目app.config   file,使用公共配置文件中指定的值。

答案 2 :(得分:5)

首先,请记住App.config或web.config对于在解决方案中由启动项目建立的“进程”中使用的任何项目中运行的所有代码都是可见的...即如果您的解决方案有一个控制台应用程序和5个类库,或一个WinForms应用程序和4个类库,或一个WIndows服务和3个类库,或一个控制台应用程序用作启动项目,另一个控制台应用程序用作类库,然后你没有问题,配置app.config和所有引用的文件,从所有项目中都可见。

其次,如果您在解决方案中运行两个或更多单独的可执行进程(如Windows服务作为服务器,以及winforms客户端),那么如果您希望它们共享特定的配置设置,那么可以将这些设置放在machine.config文件中,虽然你应该小心这样做..并且一些企业服务器团队对此皱眉..

答案 3 :(得分:0)

根据nawfal的帖子, 如果要使用ConfigurationManager操作appSettings,请使用configSource属性:

<?xml version="1.0" encoding="utf-8" ?>
<appSettings configSource=”c:\commonSettings.config”>
    <add key="myAppSpecificSetting" value="Setting1" />
</appSettings>