我是InstallShield的新手。我正在尝试为我的项目创建一个安装程序,我必须安装Wildfly 11作为服务。 Wildfly 11有一个文件service.bat,非常适合我的需要。我面临一些我需要帮助的问题。
1)当我尝试通过选择System Configuration->Service
在InstallShield中创建服务时,它表示要在组件中添加与服务相关的文件,并将我想要运行的文件作为密钥文件运行。这里的问题是我想运行的密钥文件是.bat文件,服务无法识别它,因为它需要运行.exe文件。
2)有些我如何设法创建一个自定义操作,运行我的.bat文件来启动服务,它工作正常。现在InstallShield中有哪种方法可以将服务Startup Type更改为自动?
即使我解决了我的第一个问题,我仍然在这里提到它,因为我想知道这是想法的方式,还是我天真不知道理想的方式。
对于您的类型信息,我使用的是InstallShiled 2014 Premier版本,我正在使用BasicMSI项目类型。
提前感谢您的帮助。
答案 0 :(得分:0)
我不熟悉将bat文件作为服务运行。如果您尝试以正确的方式在MSI中进行设置,那么您就可以在System Configuration-> Services下的正确位置。您的bat文件应该通过组件安装。创建组件时,请确保将bat文件设置为您的密钥名称。配置完成后,您应该可以设置“开始类型”。
我不建议使用自定义操作执行此操作,因为您必须考虑升级和卸载。我的猜测是你还没有考虑过这个。
如果您想在自定义操作中继续执行此操作,则应使用命令行sc.exe命令或其相应的API,无论您使用何种语言编写自定义操作。添加用于更改自定义操作中的“开始类型”的代码。
答案 1 :(得分:0)
服务安装 :批处理文件不作为服务运行(normally),但在某些情况下,它们用于以EXE格式安装服务文件。通常,这是由开发人员在开发期间完成的,或者是在有限数量的计算机上手动安装服务。有些人还使用scheduled tasks在系统启动时运行这些批处理文件。不是我推荐的方法。
对于较大规模的发行版,您可以使用适当的包进行部署。 MSI就是这样一种格式。使用MSI时,不应该使用批处理文件安装服务。您应该通过适当的MSI表注册和配置服务,以利用内置的服务配置功能。基本上,您创建ServiceInstall和InstallControl表来分别安装和控制相关服务。
使用此内置方法比使用自定义操作更可靠。关于为什么只应在需要时使用自定义操作的一些背景:Why is it a good idea to limit the use of custom actions in my WiX / MSI setups?
使用适当的MSI功能进行服务配置和控制,您可以更加频繁地升级和维护包。
Installshield程序 :
服务安装批处理文件通常是令人生畏的,但是当你分析它们时,它们可能实际上做得不多。在某些情况下,它们的大部分内容与解析命令行和处理错误条件有关。
通常可以从这些脚本中提取所需的信息 - 并且它倾向于查找是否存在该服务的任何登录凭据,并且复制批处理文件在MSI内部复制的所有文件的安装 - 因此MSI完全将BAT文件替换为部署解决方案。
System Configuration => Service
。通过“文件”或“组件”视图添加服务EXE文件后,请使用此视图。