首页 > 解决方案 > 在安装过程中使用 InstallUtil.exe 命令安装 Windows 服务

问题描述

我有一个Console Application项目Visual Studio Solution。此应用程序(此处称为 semplicity MyApplication.exe)只不过是 WCF 服务的主机。

我需要一个安装程序来在目标机器上安装我的应用程序,所以我下载了Microsoft Visual Studio Installer Projects扩展程序。我收集了所有要复制到应用程序文件夹中的文件,但我希望安装程序甚至将我的服务注册为 Windows 服务。

为此,我导入了InstallUtil.exe如下图所示的内容。我创建了嵌套的额外文件夹(Windows 文件夹 -> Microsoft.NET -> Framework64 -> v4.030319)以反映目标环境的实际结构。

在此处输入图像描述

然后我在节点Custom Action下创建了这样的:Commit

在此处输入图像描述

与以下Arguments:

“[TARGETDIR]MyApplication.exe”

我尝试了生成的设置,我注意到所有文件都已复制但未安装服务(我在 MSC 列表中没有看到它)。

所以,在我的问题下面:

标签: c#installationinstallutil

解决方案


也许这对处于类似情况的人有用。

使用语句

using System.Configuration.Install;

安装

ManagedInstallerClass.InstallHelper(new[] { Assembly.GetExecutingAssembly().Location });

卸载

ManagedInstallerClass.InstallHelper(new[] { "/u", Assembly.GetExecutingAssembly().Location });

上面处理了您提到的 InstallUtil 的功能。

文档

ManagedInstallerClass.InstallHelper

InstallUtil 文档

该实用程序位于以下位置:

Windows 系统上的 .NET 目录:

  • C:\Windows\Microsoft.NET\Framework\v\InstallUtil.exe
  • C:\Windows\Microsoft.NET\Framework64\v\InstallUtil.exe

InstallUtil.exe 由 Microsoft 进行数字签名。


推荐阅读