我有一个正在使用的安装项目,并且已在用户界面中添加了EULA。我需要通过运行安装程序来支持无人值守(命令行)安装和GUI安装。在GUI安装中强制执行EULA,但在无人参与的安装中则不执行。

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

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

在最坏的情况下,我想我可能需要一个附加参数“ AcceptEULA”,如果在进行命令行安装时找不到该炸弹,则会退出安装。任何人都可以提供的任何指导都将不胜感激。

有帮助吗?

解决方案

每个人都应该意识到,不能将Param1 Param2和AcceptEULA传递给MSI。只能传递ACCEPTEULA之类的公共属性(全部大写)。

MSI可以通过使用LaunchCondition轻松完成此操作,该启动条件可以关闭自定义属性(例如ACCEPTEULA和内置属性UILevel)。目标是仅在UILevel= 5或ACCEPTEULA= 1或已经(已)安装产品的情况下允许安装

条件:

UILevel= 5或ACCEPTEULA或已安装

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

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

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

UILevel: http://msdn.microsoft.com/en-us /library/aa372096(VS.85).aspx

其他提示

启动GUI时,在第一次运行时显示EULA。例如。就像各种sysinternals工具一样(FileMon,RegMon等)。好的想法是它可以与xcopy部署一起使用。

我通常认为单击“接受”与仅使用该软件相比没有任何法律约束力。在某些辖区,接受EULA是赋予用户安装/运行软件的权利。

否则,我只是对安装程序进行了调整,因此它永远不会显示EULA,因此我不受它们的束缚。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top