【问题标题】:Load different app.config for .NET console application为 .NET 控制台应用程序加载不同的 app.config
【发布时间】:2011-11-29 15:46:50
【问题描述】:

我正在多台 Windows 2008 机器上的共享网络文件夹中运行 .NET 控制台应用程序,并且希望为运行控制台的每台 Windows 2008 机器分别设置 app.config 文件。最好的方法是什么?

【问题讨论】:

    标签: .net app-config console-application


    【解决方案1】:

    您有一些选择,这取决于您是否可以更改和重新编译控制台应用程序:

    1. 将可执行库和依赖库的副本放在单独的子目录中,并为每个子目录提供自定义 app.config。就像每台客户端机器的共享/子目录一样。当然,这可能会变成维护噩梦或占用空间的体验。不过,对于简单的解决方案/需求,它可能仍然可行。
    2. 作为 (1) 的变体,将同一控制台应用程序二进制文件的副本放在同一目录中,但名称不同。将 app.config 的各个版本(名称与可执行文件的副本相同)放在同一目录中。同样,这与 (1) 具有相同(如果不是更多)的问题,但可能会起作用,具体取决于您的确切要求。
    3. 从新的AppDomain 重新启动可执行文件本身。这允许您为新应用程序域的 app.config 指定自定义路径/文件名。无耻塞:https://stackoverflow.com/a/3633158/21567。请注意,此方法不限于在新应用程序域内执行您自己的程序集。您还可以编写一个托管存根应用程序,在您真正想要运行的控制台应用程序(可能无法更改)上执行 ExecuteAssembly,并为其提供自定义 app.config。
    4. 编写一个承载 CLR 本身的本机存根进程。这也将允许您指定要使用的 app.config 文件的路径/名称。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-10-30
      • 2011-03-31
      • 2020-07-14
      • 2012-04-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-02-09
      相关资源
      最近更新 更多