我使用WIX开发了一个msi安装程序,它包括一个桌面应用程序以及一个windows服务,它们都运行在C# .Net 3.5框架上。只有当任何用户登录到触发桌面应用程序启动的系统时,我的windows服务才会启动。windows服务是作为本地系统运行的。安装程序在Win-8、Win-7和Windows中安装成功,但在卸载时显示“文件正在使用”消息,即使服务没有从SCM中删除。I已经分别在服务的OnStop()方法和WIX页面中给出了以下代码。
onStop()方法:
Process[] workers = Process.GetProcessesByName("filename");
workers[0].WaitForExit(1000);
workers[0].Kill();
workers[0].Dispose();
workers[0].Close();WIX内部的Product.wxs:
<ServiceInstall Id="ServiceInstaller" Name="Servicename"
DisplayName="service display name" Description="service description"
Start="auto" Account="LocalSystem" ErrorControl="normal"
Type="ownProcess"></ServiceInstall>
<ServiceControl Id="ServiceInstallerControl" Name="Servicename"
Start="install" Stop="both" Remove="uninstall" Wait="yes" />此服务根本没有从SCM中删除,并且在卸载过程中将显示下面的弹出消息。

我曾与WIX公司合作解决这个问题,但做不到。
在这方面提供的任何帮助都将受到高度赞赏。
发布于 2016-03-07 16:26:50
我建议您创建处理uninstall.You的自定义操作,它可以创建包含卸载详细信息的批处理文件,然后简单地从自定义操作(作为一个过程)执行批处理文件.Its良好实践,以便使用服务创建安装和卸载批处理文件。
https://stackoverflow.com/questions/30235901
复制相似问题