我正在处理一个安装项目,并已将 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/