c# - 如何使用 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 安装程序。
解决方案
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
推荐阅读
- javascript - javascript/typescript 中模块范围定义对象的生命周期
- vue.js - 定义 Vue 2.x 组件的类型
- material-ui - useStyles 在 mui5 中不能正常工作?
- powerbi - Microsoft Advanced Hunting Query API 适用于 Power BI 中的某些表,但不适用于其他表
- laravel - Laravel 中的 API 路由
- electron - Electron DevTools Inspector 未在 Linux 上显示
- android - 按钮上的插页式广告取决于想要禁用
- java - 如何在一个 jframe 到另一个 jframe 之间传输数据?
- rust - 为什么使用 Self 而不是特定类型的“借来的价值活得不够长”?
- c# - 实体框架“自转换包含”技巧在 .NET 5/6 中不再有效