C# 如何使用ClickOnce创建静默安装程序

C# 如何使用ClickOnce创建静默安装程序,c#,winforms,visual-studio-2015,clickonce,C#,Winforms,Visual Studio 2015,Clickonce,我使用clickonce创建了安装程序(exe),它为安装我的应用程序提供了GUI 现在,我想通过从命令窗口获取一些参数,使这个安装程序从命令行静默运行。参数可能类似于数据库服务器名称、用户id和密码等 这个静默安装程序还应该注意我提到的基于GUI的安装程序的先决条件。如果.Net Framework v4.7.1、VC++2017和windows installer v4.5不可用,则需要将它们安装到目标计算机上 我已经尝试从program.cs Main方法中读取参数,现在我能够获取参数,并

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

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

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

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

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

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

Inno Setup()支持“在安装之前、安装期间或安装之后运行其他程序”。因此,您可以启动其他安装程序并等待,以下是如何安装MSI文件(您可以随安装程序下载并分发它们):

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

我使用过VS安装项目(不再支持开箱即用)、Install Shield(用于安装过程中的高级对话框)、ClickOnce(在我的雇主那里,这是一个痛苦的过程,除了windows配置之外,不会因为代码错误而失败)和Inno安装

除非您需要Inno安装程序没有的功能,否则我建议您使用它,您也可以通过编写脚本或执行Exe来执行自定义任务:

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

我认为你不能用ClickOnce创建一个无声的安装程序;ClickOnce的前提是有一个名义上的用户界面,在调用方的控制之外;不过,很高兴被证明是错的!那么,可以通过VS 2015中提供的InstallShield限量版来实现吗?这似乎是可行的@CSharpDev您有一些高级需求,这些需求向您展示了ClickOnce解决方案的一些限制,这些限制可能不是为实现这些限制而设计的。因此,您需要一个自定义安装程序来执行任何您想要的操作(静默安装、安装服务、可能向安装程序添加自定义日志等等…)。另一个选择可能是使用InnoSetup,这是一个免费项目。对于静默安装,请查看/silent和/VERYSILENT命令行开关:您还可以查看。
/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.
https://jrsoftware.org/iskb.php?custom