2011-11-29 66 views

回答

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文件的路径/名称。
相关问题