首页新闻找找看学习计划

C#删除服务

0
悬赏园豆:20 [已解决问题] 解决于 2013-04-26 19:03

使用下面代码删除服务,立刻是使用File.Delete删除服务exe文件,报错,被删除服务程序占用,有啥解决办法吗?

using (AssemblyInstaller myAssemblyInstaller = new AssemblyInstaller())
                    {
                        myAssemblyInstaller.UseNewContext = true;
                        myAssemblyInstaller.Path = installPath;
                        myAssemblyInstaller.Uninstall(mySavedState);
                        myAssemblyInstaller.Dispose();
                    }

裸奔的创业者的主页 裸奔的创业者 | 初学一级 | 园豆:37
提问于:2013-04-03 17:23
< >
分享
最佳答案
0

1、粗野的办法:杀死那个进程

2、给进程发退出信息

然后再删除

收获园豆:5
2012 | 专家六级 |园豆:19142 | 2013-04-03 18:36

卸载程序本身就是那个进程,杀死-重启就有点麻烦了

裸奔的创业者 | 园豆:37 (初学一级) | 2013-04-04 09:22

@裸奔的创业者: 用一个独立的进程或脚本处理卸载,就可以避免自身删除了

2012 | 园豆:19142 (专家六级) | 2013-04-04 14:22
其他回答(3)
0
邀月 | 园豆:25327 (高人七级) | 2013-04-03 23:01

上面的代码就是卸载

支持(0) 反对(0) 裸奔的创业者 | 园豆:37 (初学一级) | 2013-04-04 09:23
0

执行完上面的代码以后,你可以看看服务是不是真的删除成功了。然后再执行删除exe文件的操作。

收获园豆:5
jone_e | 园豆:1410 (小虾三级) | 2013-04-04 12:15
0

用 Windows SDK 提供的命令行工具就行了。

installutil.exe /u TargetName.exe

http://msdn.microsoft.com/en-us/library/sd8zc8ha(v=vs.110).aspx

http://msdn.microsoft.com/en-us/library/50614e95(v=vs.110).aspx

收获园豆:10
DiryBoy | 园豆:639 (小虾三级) | 2013-04-05 03:13
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册