我有一个用于安装 Windows 服务的 Visual Studio 安装项目。该服务设置为自动运行,此时通过将我的服务添加为自定义操作可以正常安装。但是,我希望安装程序在安装完成后启动服务。这可能吗?
在相关说明中,我是否需要在卸载和/或升级时手动停止服务?
我有一个用于安装 Windows 服务的 Visual Studio 安装项目。该服务设置为自动运行,此时通过将我的服务添加为自定义操作可以正常安装。但是,我希望安装程序在安装完成后启动服务。这可能吗?
在相关说明中,我是否需要在卸载和/或升级时手动停止服务?
在安装后覆盖自定义操作处理程序以启动 Windows 服务。尽管您设置了服务属性类型=自动,但除非我们明确启动,否则服务不会启动:
protected override void OnAfterInstall(IDictionary savedState)
{
using (var sc = new ServiceController(serviceInstaller1.ServiceName))
{
sc.Start();
}
}
尽管我们使用自定义操作停止服务以进行卸载/升级,但 Visual Studio 安装程序并未停止 FileInUse 提示。似乎 VS Installer 没有太多复杂性来更改安装程序的顺序,因为我们无法控制这种行为。但是,最好停止卸载/升级服务。
您也可以使用自定义操作来启动/停止服务。从您的自定义操作中,您只需调用以下实用程序:http ://technet.microsoft.com/en-us/library/cc736564(v=ws.10).aspx
是的,对于升级/卸载,您应该在删除文件之前停止服务,这样您就可以避免操作系统提示“正在使用的文件”。