Windows installer 如何在安装期间使用InstallShield将已安装的windows服务启动类型配置为自动
我对安装Shield完全是个新手。我正在尝试为我的项目创建一个安装程序,其中我必须安装Wildfly 11作为服务。Wildfly 11有一个文件服务.bat,非常适合我的需要。我面临着一些需要帮助的问题 1) 当我尝试在InstallShield中通过选择Windows installer 如何在安装期间使用InstallShield将已安装的windows服务启动类型配置为自动,windows-installer,installshield,Windows Installer,Installshield,我对安装Shield完全是个新手。我正在尝试为我的项目创建一个安装程序,其中我必须安装Wildfly 11作为服务。Wildfly 11有一个文件服务.bat,非常适合我的需要。我面临着一些需要帮助的问题 1) 当我尝试在InstallShield中通过选择System Configuration->service创建服务时,它会告诉我在组件中添加与服务相关的文件,并将要运行的文件作为密钥文件。这里的问题是,由于我要运行的密钥文件是.bat文件,服务无法识别它,因为它需要一个.exe文件来运行
System Configuration->service
创建服务时,它会告诉我在组件中添加与服务相关的文件,并将要运行的文件作为密钥文件。这里的问题是,由于我要运行的密钥文件是.bat文件,服务无法识别它,因为它需要一个.exe文件来运行
2) 我还介绍了如何创建一个自定义操作,该操作运行我的.bat文件来启动服务,并且运行良好。现在InstallShield中有没有一种方法可以将服务启动类型更改为自动
即使我解决了我的第一个问题,我仍然在这里提到它,因为我想知道这是一种理想的方式,还是我太天真了,不知道理想的方式
关于您的信息,我正在使用InstallShiled 2014 Premier版本,我正在使用BasicMSI项目类型
提前感谢您的帮助。我不熟悉将bat文件作为服务运行。如果您试图以正确的方式在MSI中进行设置,那么您在系统配置->服务下的位置是正确的。bat文件应通过组件安装。创建组件时,请确保将bat文件设置为密钥名。配置后,您应该能够设置启动类型 我不建议使用自定义操作执行此操作,因为您必须考虑升级和卸载。我猜你还没有考虑这个 如果要在自定义操作中继续执行此操作,则应使用命令行sc.exe命令或其相应的API,无论您使用何种语言编写自定义操作。添加用于在自定义操作中更改启动类型的代码。服务安装:批处理文件不作为服务()运行,但在某些情况下,它们用于以EXE格式安装服务文件。通常,这是由开发人员在开发过程中完成的,或者在有限数量的计算机上手动安装服务。有些人还使用在系统启动时运行这些批处理文件。我不推荐这种方法 对于更大规模的发行版,可以使用适当的包进行部署。MSI就是这样一种格式。当您使用MSI时,不应安装带有批处理文件的服务。相反,您应该通过适当的MSI表注册和配置服务,以利用内置的服务配置功能。实际上,您编写和表是为了分别安装和控制相关服务 使用这种内置方法比使用自定义操作可靠得多。关于为什么只应在需要时使用自定义操作的一些上下文: 使用适当的MSI功能进行服务配置和控制,您将有更多的时间升级和维护您的软件包
安装屏蔽程序: 服务安装批处理文件通常令人望而生畏,但当您分析它们时,它们实际上可能做不了什么。在某些情况下,其中很大一部分与解析命令行和处理错误条件有关 通常可以从这些脚本中提取所需的信息—它往往以查找服务是否有任何登录凭据为中心,并复制批处理文件复制到MSI中的所有文件的安装—因此MSI完全取代BAT文件作为部署解决方案
- 在编辑器中打开批处理文件并找到它安装的EXE文件
- 此EXE文件将是真正的Windows服务文件。可能有几种版本,例如32位和64位版本
- 将适当的EXE文件添加到MSI文件/Installshield项目中
- 添加服务运行所需的任何支持文件。如果发现问题,您可以使用依赖项漫游器和进程监视器对此进行分析
- 我没有最新版本的Installshield可供测试。在旧版本中,您打开了组件视图并找到了其中包含服务的组件。您打开它,进入高级设置,并配置了安装NT服务和控制NT服务条目
- 您可以为服务设置多个设置,包括启动类型(例如,自动)和登录凭据(如果需要)
- 您提到您的Installshield版本具有视图
系统配置=>服务
。通过文件或组件视图添加服务EXE文件后,使用此视图
- 我通常将服务设置为在安装期间启动和停止,在卸载时停止和删除。 如果服务需要凭据才能运行,则需要从BAT文件中提取该信息,并将as属性添加到服务控制项中