[英]Install a windows service with InstallUtil.exe command during an installation
我在Visual Studio Solution
中有一个Console Application
项目。 这个应用程序,在这里称为 semplicity MyApplication.exe,只不过是 WCF 服务的主机。
我需要一个安装程序来在目标机器上安装我的应用程序,所以我下载了Microsoft Visual Studio Installer Projects
扩展。 我收集了所有要复制到应用程序文件夹中的文件,但我希望安装程序甚至将我的服务注册为 Windows 服务。
为此,我导入了InstallUtil.exe
,如下图所示。 我创建了嵌套的额外文件夹(Windows 文件夹 -> Microsoft.NET -> Framework64 -> v4.030319)以反映目标环境的实际结构。
然后我在Commit
节点下创建了这样的Custom Action
:
使用以下Arguments:
“[TARGETDIR]MyApplication.exe”
我尝试了生成的设置,我注意到所有文件都已复制但未安装服务(我在 MSC 列表中没有看到它)。
所以,在我的问题下面:
App.config
包含 KeyValue [Server="localhost"] 是否可以在安装时自定义它,并向用户弹出一个弹出窗口:“您的服务器在哪里?”并使用提示的信息更新我的配置文件用户?限制: Visual Studio 安装程序项目有很多限制(短版,Chris Painter )。
替代工具:还有许多其他工具,其中一些是免费的。
WiX 工具包:WiX 工具包是免费和开源的。 以下是两个无需运行自定义操作即可安装服务的示例(安装服务的能力内置于 MSI,无需使用
InstallUtil.exe
-对不必要的自定义操作活动“说不” ):
链接:
也许这对处于类似情况的人有用。
使用语句
using System.Configuration.Install;
安装
ManagedInstallerClass.InstallHelper(new[] { Assembly.GetExecutingAssembly().Location });
卸载
ManagedInstallerClass.InstallHelper(new[] { "/u", Assembly.GetExecutingAssembly().Location });
上面处理了您提到的 InstallUtil 的功能。
文档
ManagedInstallerClass.InstallHelper
该实用程序位于以下位置:
Windows 系统上的 .NET 目录:
InstallUtil.exe 由 Microsoft 进行数字签名。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.