安装自定义 Windows 服务时出现错误 1001
Error 1001 when installing custom Windows Service
我写了一个 windows 服务,在 Framework 4.0 上 运行s 和在 VS 2015 上 运行ning。
我还创建了一个安装项目(免费的 Installshield 版本)。
我的服务在安装后没有显示在 services.msc 下,所以根据其他一些帖子,我不得不将 InstallShield 中的主要输出标记为 'Installer Class',但是当我这样做时,我得到了当我 运行 setup.exe.
时出现错误 1001
此 post 声明 "Error code 1001 ALWAYS means a failure in the Installer class custom action." 并且我不应使用自定义操作。我目前没有使用任何自定义操作。
此站点上的大多数解决方案都有适用于 Installshield 2010 的说明,这些步骤不适用于 2015。
错误出现在我的开发机器和所有客户端机器上。
有什么建议吗?
编辑:
事件查看器显示“无法创建还原点(进程 = C:\Windows\system32\msiexec.exe /V;说明 = 安装我的应用名称。;错误 = 0x80070422)。
如果您在构建机器上安装了 .NET 4.6,则需要 2015 版的限量版以避免 InstallShield 对安装程序 类 支持的版本控制错误。 (导致 1001 错误的原因有很多,因此不能保证修复。)请注意,InstallShield 2015 Limited Edition 不支持 Visual Studio.
的社区版
未安装目标 .NET 框架时会出现此错误。
如果您的目标是同一台开发机器,那么请检查该服务 (EXE) 是否已经在该机器上 运行(它不应该 运行)。
我找到了解决这个问题的方法,但它确实产生了一个新问题,尽管这个问题要简单得多,也不那么重要。
导致我出现问题的原因是我必须从 ServiceInstaller 的 AfterInstall 中删除以下代码:
new ServiceController(ServiceInstaller.ServiceName).Start();
这是为了在安装后自动启动我的服务而添加的。现在我将只手动启动服务。
因为我还不能发表评论,所以我只会回复你自己接受的答案。我知道你问这个问题已经有一段时间了,但是现在开始了。
如果您想在安装后自动启动,您可以转到步骤 3。配置目标系统。选择服务选项卡。右键单击服务并添加服务。您应该能够在您的主要输出中找到任何服务。添加后,您可以 select 与自动启动等相关的不同设置。希望对你有帮助。
附带说明一下,我仍在寻找 1001 的答案。
我遇到了完全相同的问题。在升级到 VisualStudio 2013 和更新的 InstallShield LE 并构建我的安装包后,它们突然失败并出现神秘的 1001 错误。
确定的答案
我找到了明确的答案。您不能再在 InstallShieldLE 中选择 "installer class" selected 复选框。 您必须取消选中该项目。
要打开此对话框,请转至 指定应用程序数据 > 文件 并右键单击您的主要输出和 select属性。
以前必须选中:现在不能选中
以前(Visual Studio 2012 年之前,您必须 select 编辑该项目,否则服务安装 会 失败。这非常糟糕。
现在,您必须转到 InstallShield LE 项目中的以下树项和 double-click 服务节点:
之后服务项出现在左侧(我有没有提到过糟糕的用户体验和 UI 这整件事是什么?)然后右键单击它以便您可以添加服务。
选择出现的用于添加服务的菜单项,您将获得一个允许您设置安装程序详细信息的表格。
一旦你这样做并重建你的 MSI 就会工作,这将解决 1001 错误。
原来的 InstallShield Devs 本来可以解决的,这完全是浪费时间。不幸的是。
希望这能帮助你们中的一些人在尝试使用 InstallShield 2015 LE 安装程序项目安装 .NET Windows 服务时遇到错误 1001,并将主输出设置为安装程序。
这是在 Windows 10.
上安装 .NET 4.6 时的已知错误
我正在使用 VS 2012 和 InstallShield LE 2015,目标是 .NET 4.5,我必须取消选中 "Installer class" 才能正常工作。
经过一些挖掘后,我发现安装程序在尝试删除服务(与您正在安装的任何内容相关联)时失败并出现该错误 - 并且(服务)不再存在。
我的用例场景 - 从复杂解决方案的 MVS2015 开始安装,该解决方案还包含 windows 服务。
当您更改解决方案的版本时,安装程序会停止运行,发现您的应用程序之前已安装并且无法卸载它,因为它是不同的版本。它会弹出一个对话框,说明这一点并退出......但它已经卸载了该服务。
现在尝试安装或卸载失败并出现错误 1001,因为 windows 找不到用于卸载它的服务。
如果有人有更好的解决方案请post吧,但我的解决方案是使用 sc 命令行实用程序。 sc 是一个实用程序,可用于从命令行操作服务(键入 sc 以获得帮助)。所以我使用 sc 添加服务(按名称),然后我可以像往常一样卸载或安装。命令中必须有有效的 bin 路径 - 但任何有效路径都将被接受。
sc <server> create [service name] [binPath= ] <option1> <option2>...
示例:
sc create MyService binPath= C:\Windows\explorer.exe
[SC] CreateService SUCCESS
我写了一个 windows 服务,在 Framework 4.0 上 运行s 和在 VS 2015 上 运行ning。 我还创建了一个安装项目(免费的 Installshield 版本)。
我的服务在安装后没有显示在 services.msc 下,所以根据其他一些帖子,我不得不将 InstallShield 中的主要输出标记为 'Installer Class',但是当我这样做时,我得到了当我 运行 setup.exe.
时出现错误 1001此 post 声明 "Error code 1001 ALWAYS means a failure in the Installer class custom action." 并且我不应使用自定义操作。我目前没有使用任何自定义操作。
此站点上的大多数解决方案都有适用于 Installshield 2010 的说明,这些步骤不适用于 2015。
错误出现在我的开发机器和所有客户端机器上。 有什么建议吗?
编辑:
事件查看器显示“无法创建还原点(进程 = C:\Windows\system32\msiexec.exe /V;说明 = 安装我的应用名称。;错误 = 0x80070422)。
如果您在构建机器上安装了 .NET 4.6,则需要 2015 版的限量版以避免 InstallShield 对安装程序 类 支持的版本控制错误。 (导致 1001 错误的原因有很多,因此不能保证修复。)请注意,InstallShield 2015 Limited Edition 不支持 Visual Studio.
的社区版未安装目标 .NET 框架时会出现此错误。
如果您的目标是同一台开发机器,那么请检查该服务 (EXE) 是否已经在该机器上 运行(它不应该 运行)。
我找到了解决这个问题的方法,但它确实产生了一个新问题,尽管这个问题要简单得多,也不那么重要。
导致我出现问题的原因是我必须从 ServiceInstaller 的 AfterInstall 中删除以下代码:
new ServiceController(ServiceInstaller.ServiceName).Start();
这是为了在安装后自动启动我的服务而添加的。现在我将只手动启动服务。
因为我还不能发表评论,所以我只会回复你自己接受的答案。我知道你问这个问题已经有一段时间了,但是现在开始了。
如果您想在安装后自动启动,您可以转到步骤 3。配置目标系统。选择服务选项卡。右键单击服务并添加服务。您应该能够在您的主要输出中找到任何服务。添加后,您可以 select 与自动启动等相关的不同设置。希望对你有帮助。
附带说明一下,我仍在寻找 1001 的答案。
我遇到了完全相同的问题。在升级到 VisualStudio 2013 和更新的 InstallShield LE 并构建我的安装包后,它们突然失败并出现神秘的 1001 错误。
确定的答案
我找到了明确的答案。您不能再在 InstallShieldLE 中选择 "installer class" selected 复选框。 您必须取消选中该项目。
要打开此对话框,请转至 指定应用程序数据 > 文件 并右键单击您的主要输出和 select属性。
以前必须选中:现在不能选中
以前(Visual Studio 2012 年之前,您必须 select 编辑该项目,否则服务安装 会 失败。这非常糟糕。
现在,您必须转到 InstallShield LE 项目中的以下树项和 double-click 服务节点:
之后服务项出现在左侧(我有没有提到过糟糕的用户体验和 UI 这整件事是什么?)然后右键单击它以便您可以添加服务。
选择出现的用于添加服务的菜单项,您将获得一个允许您设置安装程序详细信息的表格。
一旦你这样做并重建你的 MSI 就会工作,这将解决 1001 错误。
原来的 InstallShield Devs 本来可以解决的,这完全是浪费时间。不幸的是。
希望这能帮助你们中的一些人在尝试使用 InstallShield 2015 LE 安装程序项目安装 .NET Windows 服务时遇到错误 1001,并将主输出设置为安装程序。
这是在 Windows 10.
上安装 .NET 4.6 时的已知错误我正在使用 VS 2012 和 InstallShield LE 2015,目标是 .NET 4.5,我必须取消选中 "Installer class" 才能正常工作。
经过一些挖掘后,我发现安装程序在尝试删除服务(与您正在安装的任何内容相关联)时失败并出现该错误 - 并且(服务)不再存在。 我的用例场景 - 从复杂解决方案的 MVS2015 开始安装,该解决方案还包含 windows 服务。 当您更改解决方案的版本时,安装程序会停止运行,发现您的应用程序之前已安装并且无法卸载它,因为它是不同的版本。它会弹出一个对话框,说明这一点并退出......但它已经卸载了该服务。 现在尝试安装或卸载失败并出现错误 1001,因为 windows 找不到用于卸载它的服务。
如果有人有更好的解决方案请post吧,但我的解决方案是使用 sc 命令行实用程序。 sc 是一个实用程序,可用于从命令行操作服务(键入 sc 以获得帮助)。所以我使用 sc 添加服务(按名称),然后我可以像往常一样卸载或安装。命令中必须有有效的 bin 路径 - 但任何有效路径都将被接受。
sc <server> create [service name] [binPath= ] <option1> <option2>...
示例:
sc create MyService binPath= C:\Windows\explorer.exe
[SC] CreateService SUCCESS