Service InstallShield 2011未从服务列表中删除服务

Service InstallShield 2011未从服务列表中删除服务,service,installshield,uninstallation,installshield-2011,Service,Installshield,Uninstallation,Installshield 2011,我有一个InstallShield 2011项目(A)安装了一个服务,并将此项目复制到另一个安装了不同服务的项目(B)中 在卸载过程中,如果安装了(A)或(B),服务将卸载并从服务列表中删除。但是,如果(A)和(B)同时存在,则卸载时(B)不会从服务列表中删除。实际的文件正在被删除,所以当我右键单击启动服务时,它表示找不到该文件 我在项目的常规信息页面上更新了产品代码和升级代码,并在复制InstallShield项目时更新了设置设计-高级设置-服务-[My Service]中的密钥名称 是否有任

我有一个InstallShield 2011项目(A)安装了一个服务,并将此项目复制到另一个安装了不同服务的项目(B)中

在卸载过程中,如果安装了(A)或(B),服务将卸载并从服务列表中删除。但是,如果(A)和(B)同时存在,则卸载时(B)不会从服务列表中删除。实际的文件正在被删除,所以当我右键单击启动服务时,它表示找不到该文件

我在项目的常规信息页面上更新了产品代码和升级代码,并在复制InstallShield项目时更新了设置设计-高级设置-服务-[My Service]中的密钥名称


是否有任何其他共享项可能会影响卸载?

组件GUID也可以共享。这很可能是你问题的根源。作为一种实践,您永远不应该复制一个项目并使用它来为另一个类似的产品创建一个安装项目,这是错过更新某些必须是唯一的并且软件包行为不正确的guid的最简单的方法


我不知道InstallShield是否有此选项,其他工具也有,但推荐的方法是从第一个模板(a)创建一个项目模板,然后从该模板创建一个新项目,在这种情况下,应确保从包中为所有敏感区域获取新的唯一GUID。

将InstallShield项目保存为模板并从模板创建新项目时,产品/升级代码会更改,但组件代码保持不变。它们是否需要在多个项目中是唯一的?组件guid也应该是唯一的。如果您希望在两个应用程序之间共享某些文件,并为组件提供一些guid,那么更好的选择是构建一个合并模块,并将该合并模块添加到两个项目中。但是,如果项目被认为是构建完全独立的包,那么组件应该有唯一的guid。