更新Windows服务程序集而不重启它?

时间:2009-01-09 19:33:26

标签: c# .net windows-services

如何在不重新启动服务的情况下更新某些Windows服务分离程序集?

注意:此Windows服务托管了WCF服务,因此无需重新启动服务,因此不要关闭WCF客户端..

1 个答案:

答案 0 :(得分:4)

AFAIK,您必须在其自己的AppDomain中运行可重新启动的东西,并设置域以使ShadowCopyFiles设置为true。您也可以选择自己的CachePath,将相关的dll复制到其中。

此后,您可以使用FileSystemWatcher检查dll的原始位置是否有任何更改。

一旦有,请卸载AppDomain,清除缓存,并像以前一样设置AppDomain。

为了简单地启动一个新的AppDomain,其中包含明确定义的Start,停止点代码将在您的新AppDomain中执行,我谦卑地指向您的页面:A simple way to start your code in a different AppDomain