是否可以将 .NET 应用程序配置为使用不同的配置文件,而无需专门采用源代码来支持这种需求?
我有一个 .NET 应用程序。它的源代码不执行任何配置文件操作。我想知道是否有办法指示 CLR 将应用程序绑定到另一个配置文件。命令行开关是完美的,但据我所知不存在这样的东西。
注册表更改可能是一个解决方案,只要仅在应用程序启动期间查阅它即可,因为我希望使用不同的配置文件运行应用程序的两个实例。因此,如果在应用程序生命周期内查阅注册表 - 没有好处。
无论如何,可能还有其他选择。尽管如此,我还是不知道。
有人吗?
谢谢。
I have a .NET application. Its source code performs no config file manipulations. I am wondering whether there is a way to instruct the CLR to bind the app to another config file. A command line switch is perfect, but as far as I know no such thing exists.
A registry change could be a solution, as long as it is consulted only during the application start, because I wish to run two instances of the app with different config files. So, if the registry is consulted during the app lifetime - no good.
Anyway, there could be other options. Still, I am unaware of any.
Anyone?
Thanks.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
制作一个可执行以下 2 件事的加载程序 exe:
重新加载自定义
app.config
文件,如下所示:在运行时更改默认 app.config使用
Assembly。 Load()
+ 调用Assembly.EntryPoint
或者,更好的是,创建一个新的
AppDomain
,使用domain.SetData("APP_CONFIG_PATH", your_path)
+domain.ExecuteAssembly(your_file_name)
或者您可能会遇到的其他问题:
Make a loader exe which does 2 following things:
Reloads custom
app.config
file as shown here: Change default app.config at runtimeUses
Assembly.Load()
+ invokes theassembly.EntryPoint
Or, even better, create a new
AppDomain
, usedomain.SetData("APP_CONFIG_PATH", your_path)
+domain.ExecuteAssembly(your_file_name)
.Other gotchas you're may run into: