安装自定义Windows服务时出现错误1001

Cam*_*llo 20 installshield windows-services

我写了一个在Framework 4.0上运行并在VS 2015中运行的Windows服务.我还创建了一个安装项目(免费的Installshield版本).

安装后我的服务没有在services.msc下显示,所以根据其他帖子,我必须将InstallShield中的主输出标记为'安装程序类',但是当我这样做时,我在运行安装程序时得到错误1001.可执行程序.

这篇文章指出"错误代码1001总是意味着安装程序类自定义操作失败." 并且我不应该使用自定义操作.我目前没有使用任何自定义操作.

此站点上的大部分解决方案都包含Installshield 2010的说明,这些步骤不适用于2015.

错误出现在我的开发机器以及所有客户端机器上.有什么建议?

编辑:

事件查看器显示"无法创建还原点(进程= C:\ Windows\system32\msiexec.exe/V;说明=已安装我的应用程序名称.;错误= 0x80070422)".

rad*_*vus 38

我有同样的问题.在升级到VisualStudio 2013和较新的InstallShield LE并构建我的安装包之后突然出现了隐藏的1001错误.

最终答案

我找到了明确的答案.您不能再在InstallShieldLE中选中"安装程序类"复选框. 您必须取消选中该项目.

要打开此对话框,请转到" 指定应用程序数据" >" 文件",然后右键单击"主输出"并选择"属性".

取消选中安装程序类

以前,你必须选择它:现在它不能被选中

以前(的Visual Studio 2012,你不得不有选择的项目或服务在安装前会失败.这是相当可怕.

现在,您必须转到InstallShield LE项目中的以下树项,然后双击"服务"节点: 服务节点

之后,服务项目出现在左侧(我已经提到过这个可怕的用户体验和用户界面这是什么?)并右键单击它以便您可以添加服务.

添加服务

选择似乎添加服务的菜单项,您将获得一个表单,允许您设置安装程序详细信息.

安装细节

一旦你这样做并重建你的MSI将工作,这将解决1001错误.

原来的InstallShield Devs可能已经解决了,这完全是浪费时间.不幸的.


Mic*_*man 7

如果您的构建计算机上安装了.NET 4.6,则需要2015版本的限制版,以避免出现InstallShield对安装程序类的支持的版本控制错误.(导致1001错误的原因有很多,因此这不是保证修复.)请注意,InstallShield 2015 Limited Edition不支持Visual Studio的社区版.


Cam*_*llo 0

我找到了一些可以解决这个问题的方法,但它确实产生了一个新问题,尽管是一个更简单且不那么关键的问题。

导致我的问题的原因是我必须从 ServiceInstaller 的 AfterInstall 中删除以下代码:

new ServiceController(ServiceInstaller.ServiceName).Start();
Run Code Online (Sandbox Code Playgroud)

这是为了在安装后自动启动我的服务而添加的。现在我将手动启动该服务。