问题标签 [service-installer]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
325 浏览

f# - 安装 Windows 服务时出错(在 F# 中)

我的问题如下:当我尝试安装 Windows 服务时,出现以下错误:

片段: ... No public installers with the RunInstallerAttribute.Yes attribute could be found in the <path to exe> assembly. ...

我按照这个教程

我有一个Program.fs文件包含:

这应该足够了,事实上,我什至认为我不需要将public关键字添加到类型定义中。安装这个可执行文件InstallUtil.exe给了我与使用以下代码安装它相同的错误:

我曾尝试以管理员和我的普通帐户在 PowerShell、cmd 和 Visual Studio CLI 中运行此脚本,但我一直收到相同的错误。如果有人知道我做错了什么,我将非常感谢一些帮助。

0 投票
0 回答
365 浏览

.net - 为什么 .NET 在安装服务时为服务 ImagePath 添加额外的引号

在安装系统服务时,我遇到了 .NET 非常奇怪的行为。

我在OnBeforeInstall方法中添加了 2 个日志记录调用。这是它在输入方法时显示的内容:

这是它在OnBeforeInstall方法末尾显示的内容:

但这是为该服务的ImagePath属性真正安装的内容:

因此,由于未知原因,它被包含在额外的双引号中!但为什么?以及如何解决这个问题?

我已经尝试用双引号将参数括起来:

那没有帮助。

我试图不用双引号括起来任何东西:

那也没有帮助。

为什么它很重要:因为当ImagePath包含这样额外的双引号时,我无法启动服务,因为错误:

我试图解决这个问题,但没有找到任何解释。

也是一个值得思考的问题- 为什么.NET 框架设计中存在这样的概念差距,它不允许使用某种标准方式指定服务StartParameters ?因此,程序员必须在Context中使用带有“AssemblyPath”参数的技巧。

先感谢您。

PS。它是 .NET 3.5 服务应用程序。添加服务StartParameter - 这是由我在代码中完成的。问题不在于添加StartParameter本身。问题是 - 为什么 .NET 框架在那里添加额外的双引号?以及如何避免这种情况?

聚苯乙烯。是的,我知道我可以编写一段代码来打开注册表项并修改ImagePath值,但我想避免使用这种肮脏的方法,如果可能的话,我想用 .NET 的标准和简单功能来做所有事情服务安装程序。有可能吗?

解决方法:我实现了一个技巧 - 在assemblypath之后添加一个引号,在参数之前添加一个引号,所以现在在日志输出中OnBeforeInstall方法的末尾,我看到以下内容:

考虑到 .NET 将在此类ImagePath值周围添加引号后,它将成为exe + parameters 的正确值。正如我所看到的,这种解决方法效果很好。但我很担心——如果这个在 .NET 中带有额外引号的 bug 将来会被修复怎么办?

0 投票
2 回答
4162 浏览

wix - WiX 服务不启动:服务启动失败验证您是否有足够的权限

0 投票
0 回答
2868 浏览

c# - 本地计算机上已存在源

我需要构建一个 Windows 服务来监视“主”应用程序。所以,我搜索了很多,找到了开始使用服务所需的代码。

我对安装程序的唯一更改是描述、显示名称、服务名称和启动类型设置为manual. 这是安装

Microsoft (R) .NET Framework 安装实用程序版本 4.6.1586.0 版权所有 (C) Microsoft Corporation。版权所有。

运行事务安装。

开始安装的安装阶段。查看 E:\Dev\ZBMS 1.0\ZBMS.Checks\bin\Debug\ZBMS.Checks.exe 程序集进度的日志文件内容。该文件位于 E:\Dev\ZBMS 1.0\ZBMS.Checks\bin\Debug\ZBMS.Checks.InstallLog。安装程序集“E:\Dev\ZBMS 1.0\ZBMS.Checks\bin\Debug\ZBMS.Checks.exe”。受影响的参数有:logtoconsole = logfile = E:\Dev\ZBMS 1.0\ZBMS.Checks\bin\Debug\ZBMS.Checks.InstallLog 汇编路径 = E:\Dev\ZBMS 1.0\ZBMS.Checks\bin\Debug\ZBMS.Checks .exe 正在安装服务 ZBMS... 服务 ZBMS 已成功安装。在日志应用程序中创建 EventLog 源 ZBMS...

安装阶段发生异常。System.ArgumentException:源 ZBMS 已存在于本地计算机上。

安装的回滚阶段即将开始。查看 E:\Dev\ZBMS 1.0\ZBMS.Checks\bin\Debug\ZBMS.Checks.exe 程序集进度的日志文件内容。该文件位于 E:\Dev\ZBMS 1.0\ZBMS.Checks\bin\Debug\ZBMS.Checks.InstallLog。回滚程序集 'E:\Dev\ZBMS 1.0\ZBMS.Checks\bin\Debug\ZBMS.Checks.exe'。受影响的参数有:logtoconsole = logfile = E:\Dev\ZBMS 1.0\ZBMS.Checks\bin\Debug\ZBMS.Checks.InstallLog 汇编路径 = E:\Dev\ZBMS 1.0\ZBMS.Checks\bin\Debug\ZBMS.Checks .exe 将事件日志恢复到源 ZBMS 的先前状态。服务 ZBMS 正在从系统中删除... 服务 ZBMS 已成功从系统中删除。

回滚阶段成功完成。

事务安装已完成。安装失败,已回滚。

我尝试了什么:

我很难解决这个问题。

0 投票
1 回答
918 浏览

c# - Windows 服务中一个 ServiceProcessInstaller 中的多个 ServiceInstaller

我已将两个 ServiceInstaller 添加到我的 ServiceProcessInstaller。之后我改变了我的 Main() 如下:

我还将 Service2 设置为 Service1 的依赖服务,如下所示:

它仍然只运行我的Service1。

Service2 从不打电话。

如果我在 Main() 中更改序列,那么 Service2 只会调用。

它总是调用第一个服务。

如何调用我的两种服务?

0 投票
1 回答
58 浏览

visual-studio-2017 - Visual Studio 2017 安装程序项目在重新安装时要求系统重新启动

我有服务项目和 Visual Studio 2017 安装程序项目来安装它。如果我从“添加或删除项目”开始卸载,然后安装新版本 - 一切正常。如果我从 Visual Studio 开始安装 - 一切正常

但是如果使用资源管理器中的 msi 文件开始安装。安装程序要求我重新启动系统。如何避免这种情况?

0 投票
1 回答
29 浏览

installshield - InstallShield 2016 Pro,服务不会安装多个功能

我创建了一个安装程序来发布 Web 应用程序。这没有任何问题。我创建了一个单独的安装程序来安装 Windows 服务。这也没有任何问题。

由于从业务角度来看它们紧密相关,因此我将这两个安装项目合并为一个具有两个功能的项目。服务功能是可选的。所有文件都被移动到适当的目录,即 Web 应用程序文件将转到 wwwroot,服务应用程序文件将转到程序文件 (86)\blah,但服务本身并未创建。即使我已经将它完全复制为另一个项目并将其绑定到正确的组件。

我绞尽脑汁,经历了无数次,但我找不到原始服务安装项目和组合项目之间的任何差异。

我错过了什么?

这是一个屏幕截图,显示该服务确实已设置

在此处输入图像描述

0 投票
1 回答
131 浏览

c# - 为什么 ServiceInstaller 在我的“WPF App(.NET Framework)”项目中不可用?

我想以编程方式安装和卸载 Windows 服务,但我无法在我的“WPF App(.NET Framework)”项目中使用ServiceInstaller 。

在此处输入图像描述

在此处输入图像描述

我错过了一些参考资料吗?