c# - 无人值守(命令行)安装强制接受 EULA

标签 c# windows-installer

我正在处理一个安装项目,并已将 EULA 添加到用户界面。我需要支持无人值守(命令行)安装以及通过运行安装程序进行 GUI 安装。 EULA 在 GUI 安装中强制执行,但在无人值守安装中则不强制执行。

目前,我正在以以下格式运行命令行安装,并传入自定义操作中使用的参数:

MSIEXEC/i ProjectSetup.msi/qn/l* log.txt Param1="Foo"Param2=Bar

最坏的情况是,我想我可能需要一个额外的参数“AcceptEULA”,如果我们在进行命令行安装时找不到它,就会从安装中删除。非常感谢任何人可以提供的任何指导。

最佳答案

每个人都应该意识到 Param1、Param2 和 AcceptEULA 无法传递给 MSI。只能传递像 ACCEPTEULA 这样的公共(public)属性(全部大写)。

MSI 可以通过使用 LaunchCondition 轻松实现此目的,该 LaunchCondition 关闭自定义属性(例如 ACCEPTEULA)和内置属性 UILevel。目标是仅在 UILevel=5 或 ACCEPTEULA=1 或产品(已)安装时允许安装

条件:

UILevel = 5 或接受或已安装

您必须接受 EULA 才能安装 [ProductName]。

公共(public)属性: http://msdn.microsoft.com/en-us/library/aa370912(VS.85).aspx

启动条件: http://msdn.microsoft.com/en-us/library/aa369752(VS.85).aspx

用户界面级别: http://msdn.microsoft.com/en-us/library/aa372096(VS.85).aspx

关于c# - 无人值守(命令行)安装强制接受 EULA,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3470017/

相关文章:

c# - 编译查询失败 - 查询是针对与指定 DataContext 关联的映射源不同的映射源编译的

c# - 通过在满足条件时添加项目来创建列表

.net-3.5 - Visual Studio 2013 更新 2,安装程序项目扩展

windows - 如何在 Windows 开始菜单中允许我的程序到 "Run As"?

installation - 如何创建一个易于升级管理的 Spring Web App Installer?

WiX、Windows 安装程序摘要?

c# - C# 中的拆分问题

c# - 在不同的元素名称下序列化一个类

c# - 使用 Async/Await 时,如何在请求属性更改时更新所有请求?

windows - 可以本地化已安装应用程序的程序和功能显示名称吗?