首页 > 解决方案 > 如何使用 ClickOnce 创建静默安装程序

问题描述

我使用 clickonce 创建了安装程序(exe),它提供了用于安装我的应用程序的 GUI。

现在我想通过从命令窗口获取一些参数,让这个安装程序从命令行静默运行。参数可能是数据库服务器名称、用户 ID 和密码等。

这个静默安装程序还应该注意我提到的基于 GUI 的安装程序的先决条件。有 .Net Framework v4.7.1、VC++ 2017 和 windows installer v4.5 是我的先决条件,如果它们不可用,则需要安装到目标机器上。

我试图从 program.cs Main 方法中读取参数,现在我能够获取参数并能够在已经安装了我的先决条件的机器上运行安装程序命令行而不会出现问题。

我不知道如何从静默安装程序运行 .net fx、VC++ 和 Windows 安装程序。因为我的安装程序没有启动,因为那里没有安装以前的 .Net fx。

我的期望是在从命令行窗口运行我的安装程序之前运行 .Net fx、VC++ 和 Windows 安装程序。

标签: c#winformsvisual-studio-2015clickonce

解决方案


Inno Setup ( https://jrsoftware.org/isinfo.php ) 支持“在安装之前、期间或之后运行其他程序”。因此您可以启动其他安装程序并等待,这是安装 MSI 文件的方法(您可以使用安装程序下载和分发它们):

https://jrsoftware.org/iskb.php?msi

以下是静默安装所需的安装参数(您可以制作 SilentSetup.bat 文件并执行该文件):

/SILENT Runs the installer in silent mode (The progress window is displayed)
/VERYSILENT Very silent mode. No windows are displayed.
/SUPPRESSMSGBOXES   Suppress message boxes. Only has an effect when combined with '/SILENT' and '/VERYSILENT'.
/NOCANCEL   Disables cancelling the installation process.
/NORESTART  Prevents installer from restarting the system even if it's necessary.
/DIR="x:\dirname"   Overrides the default install directory.

我使用过 VS Setup 项目(不再支持开箱即用)、Install Shield(用于安装期间的高级对话框)、ClickOnce(在我的雇主那里,这很痛苦,并且可能因您的代码故障而失败,但 Windows 配置)和创新设置。

除非您需要 Inno Setup 没有的功能,否则我建议您使用它,您还可以使用脚本或执行 Exe 执行自定义任务:

https://jrsoftware.org/iskb.php?custom

推荐阅读