【发布时间】:2014-11-03 19:01:59
【问题描述】:
我有一个简单的 C# Windows 服务,其中包含一个映射到我的类的自定义部分的应用配置。此外,该类与我的可执行文件位于不同的程序集中,但是该程序集位于我的可执行文件的同一文件夹中。 我要做的是通过 installutil 实用程序安装服务,然后管理 OnAfterInstall 事件以便在运行时对我的应用配置进行一些操作。
但是,当我尝试获取班级的某个部分时,我总是会遇到异常:
ConfigurationManager.GetSection("myCustomSection");
异常说我的应用程序无法找到我的类的类型定义(引用丢失或找不到文件异常(它在另一个程序集中,但它与我的服务在同一个文件夹中)。
我注意到在 OnAfterInstall(由 installutil 调用)中,environment.currentDirectory 是 C:\windows\microsoft.NET\framework\v40..,我认为这就是问题的原因。应用程序域与我的预期不同,这很可能是问题所在。
简而言之,如果我尝试在服务安装程序的 OnAfterInstall 事件中执行此操作,我的应用程序配置的读写部分似乎是不可能的。 有什么解决办法吗?
【问题讨论】:
-
app.config在windows service、console app、wpf app等很多场景中都很常见。所以,我的自定义配置类在另一个程序集中。
-
我已经通过以下 stackoverflow 帖子解决了这个问题:stackoverflow.com/questions/1682681/…
标签: c# windows-services appdomain