c# - 将win服务引入setup

标签 c# .net windows-services installation

我有 win 服务,我想在我的所有产品中引入它。 那么如何将安装服务添加到我所有的项目设置中。 我尝试将服务文件添加到安装程序(exe、config ref dll),但它不会自动安装,我应该使用 installutil.exe。 如何在不使用 installutil.exe 的情况下将其与我的产品一起安装。 我可以在安装项目中使用 ServiceProcessInstaller 和 ServiceInstaller 吗?

非常感谢

最佳答案

首先阅读有关创 build 置的内容(是的,您可以在设置中使用 ServiceProcessInstaller 和 ServiceInstaller)

接下来,看看创建合并模块。合并模块就像一个库,您可以将其包含到您的设置中。因此,您将为您的服务创建一个合并模块,并将该合并模块包含在您的每个产品设置中。

编辑(添加了配置合并模块的说明)

首先,如果您使用 InstallUtil,请确保您的服务安装正确(该步骤验证您的服务安装程序和服务进程安装程序代码是否正确编写和归属)。

接下来,一旦它开始工作,我认为您需要做的就是配置您的合并模块以安装该服务。方法如下:

  • 打开您的解决方案并右键单击您的合并模块项目。

  • 选择 View |自定义操作(将在您的文本编辑器窗口中打开一个新选项卡)

  • 在“自定义操作”编辑器选项卡中,右键单击“安装”文件夹并选择“添加自定义操作”(打开一个对话框)

  • 在“项目对话框中的选择项”中,下拉“查找范围”组合框并选择“模块可重定向文件夹”

  • 单击“添加输出”按钮(另一个对话框)

  • 在“添加项目输出”对话框中,在“项目”下拉列表中选择您的服务项目。

  • 在列表框中,选择“主要输出”(您是在告诉合并模块查找您的安装程序代码。您是说在我的服务项目的编译输出中查找它,并且在安装运行时输出将在服务的安装目录中)

  • 确定所有对话框。

  • 在“卸载”文件夹中执行相同的步骤,这样您的服务也将被正确卸载。

现在,一个小小的免责声明:我知道这适用于普通 (msi) 安装项目。我还没有用合并模块完成它,但我很确定它会起作用。

祝你好运!

关于c# - 将win服务引入setup,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2381686/

相关文章:

.net - 如何比较 LINQ 中的日期?

windows-services - Windows 服务——高可用场景和设计方法

java - 将 Java 应用程序作为服务运行

c# - 64 位 Windows 服务但需要 32 位 dll

c# - 您是否必须将 Task.Run 放入方法中以使其异步?

c# - DataTable GroupBy 后 DataView 无法正确排序

c# - WPF:通过 DataTrigger 设置 ListView View

C# - 将 HTML 编写为字符串的面向对象方式?

c# - 在 C# 项目中引用 exe 文件是一种不好的做法吗

c# - Server.MapPath 和空格