【问题标题】:Any components for working with shared config files?任何用于处理共享配置文件的组件?
【发布时间】:2013-01-26 23:35:17
【问题描述】:

我有一个场景,其中 1 个 Winform 应用程序安装在多个 Citrix 服务器上。应用在每台服务器上的配置应该完全相同(我们有多个服务器进行扩展)。

我希望能够仅共享 app.config 文件的 1 个副本,以便我可以在 1 个地方进行更改,并使其在每次安装应用程序时生效。

据我所知,.net 的唯一内置支持是使用 configSource 属性,但这仅适用于单个配置部分。我想分享整个配置文件(或至少配置组)。

我是否缺少 .net 中内置的任何可以帮助我的东西?

如果没有,有没有好的第三方或开源解决方案?

【问题讨论】:

    标签: c# app-config


    【解决方案1】:

    您可以将您的 app.config 放在共享上的某个位置并修改您的 winform 应用程序启动代码,使用此处 SO 中描述的技巧:Change default app.config at runtime,如下所示:

    namespace WindowsFormsApplication1
    {
        static class Program
        {
            /// <summary>
            /// The main entry point for the application.
            /// </summary>
            [STAThread]
            static void Main()
            {
                using (AppConfig.Change(@"\\myserver\mypath\app.config"))
                {
                    Application.EnableVisualStyles();
                    Application.SetCompatibleTextRenderingDefault(false);
                    Application.Run(new Form1());
                }
            }
        }
    }
    

    【讨论】:

    • @JMarsch:一定要奖励赏金。将答案标记为已接受不会自动执行此操作。
    • @AdamRobinson 谢谢!我不知道。
    【解决方案2】:

    以下链接讨论了可用于同步文件和文件夹的 3rd 方工具

    http://raywoodcockslatest.blogspot.com/2011/01/windows-7-raid-or-mirror-across.html

    另外,您是否尝试过编写自己的复制器服务。根据您的时间和预算,您可以决定建造或购买。我也许会建造它。

    【讨论】:

      【解决方案3】:

      SO 中描述的另一个很好的解决方案是使用配置包含。 Use XML includes or config references in app.config to include other config files' settings

      <!-- SomeProgram.exe.config -->
      <configuration>
        <connectionStrings configSource="externalConfig/connectionStrings.config"/>
      </configuration>
      
      <!-- externalConfig/connectionStrings.config -->
      <connectionStrings>
        <add name="conn" connectionString="blahblah" />
      </connectionStrings>
      

      【讨论】:

      • 谢谢 Aron -- 我知道那个,但问题是它只适用于部分,每个部分都必须有自己的文件(你不能将 2 个部分合并为一个文件) .我真的很想重定向整个配置文件。 +1 虽然。
      【解决方案4】:

      这可以使用通过 SkyDrive、Dropbox 甚至 DFS 等创建的“共享”文件夹。

      在每台服务器上,您将拥有相同的配置文件副本。作为一个好处,您甚至可以对二进制文件使用这种方法(当然,您应该处理文件锁)。

      我用的是这种方法

      1. 要将 Web 应用程序(带配置)部署到场,这是使用 DFS 完成的。
      2. 使用 Dropbox 部署桌面应用程序。我为此创建了特殊帐户。但是,我不确定这是否是合法使用 Dropbox :)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-11-06
        相关资源
        最近更新 更多