在vs2003中创建的Windows服务msi安装程序在安装时挂起在win7中

时间:2012-02-20 18:49:28

标签: windows-7 windows-services windows-installer

我们使用.Net framework 1.1(VS2003)开发的Windows服务很少。对于每个Windows服务,都会创建一个msi安装程序(设置项目)以使安装更容易。这些安装程序能够在Windows XP中成功安装Windows服务。但是这些安装程序无法在WIN7中安装Windows服务,虽然我在我尝试安装它们的机器上拥有管理员权限。虽然我尝试在win7中安装Windows服务,但是通过msi安装程序,安装进度到90%。它既没有完成也没有抛出错误。我无法理解问题是什么。

我尝试了以下方法。

1.在管理模式下打开cmd窗口并尝试使用命令msiexec -i执行msi -Din' t

2.右键单击实际的exe(windows service exe)文件,并尝试在管理模式下运行它.--“丁”

3.更改UAC永不通知,重新启动机器然后尝试安装 - Din工作

4.右键单击exe和msi并打开其属性并将兼容性更改为较低版本的Windows并尝试安装 - Din工作

我注意到的一件事是,对于我们的Windows服务安装程序的所有自定义操作,我们的主项目(exe)的主要输出是作为输入给出的。我通过删除所有自定义操作来构建msi安装程序。然后我试过然后将它安装在win7中。然后安装它。但是在安装系统期间没有提示输入帐户详细信息(这是安装Windows服务时的实际情况),并且服务管理器窗口中也没有显示该服务。

我花了很多时间来确定原因和解决方法。但是我在这个问题上发现了任何帖子。我怀疑问题出在自定义操作上。但不确定。如果问题出在自定义操作上,请告诉我如何克服它。

请提供此问题的解决方案,或者如果有任何链接可以与我分享。

1 个答案:

答案 0 :(得分:1)

FWIW,Win7不支持.NET 1.1。另外,我猜你正在使用InstallUtil自定义操作来驱动.NET Windows服务的设置。这些非常脆弱,您可以通过重构和使用MSI中的ServiceInstall ServiceControl表来消除所有这些脆弱点。