C# 无人值守(命令行)安装强制EULA验收

C# 无人值守(命令行)安装强制EULA验收,c#,windows-installer,C#,Windows Installer,我有一个正在使用的安装项目,并向用户界面添加了EULA。我需要支持无人参与(命令行)安装以及通过运行安装程序进行GUI安装。EULA在GUI安装中强制执行,但在无人参与安装中不强制执行 目前,我正在以以下格式运行命令行安装,传入自定义操作中使用的参数: MSIEXEC/i ProjectSetup.msi/qn/l*log.txt Param1=“Foo”Param2=Bar 最糟糕的情况是,我想我可能需要一个额外的参数“AcceptEULA”,如果在执行命令行安装时找不到它,我可能会取消安装。

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

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

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


最糟糕的情况是,我想我可能需要一个额外的参数“AcceptEULA”,如果在执行命令行安装时找不到它,我可能会取消安装。非常感谢任何人提供的任何指导。

在GUI启动时第一次运行时显示EULA。像各种系统内部工具一样(FileMon、RegMon等)。好的想法是它可以与xcopy部署一起工作。

在GUI启动时第一次运行时显示EULA。像各种系统内部工具一样(FileMon、RegMon等)。好的想法是它可以与xcopy部署一起工作。

我通常认为,单击“接受”并不比简单地使用软件更具法律约束力。在某些司法管辖区,接受EULA是用户安装/运行软件的权利


否则,我只需调整安装程序,使其不会显示EULA,因此我不受它们的约束。

我通常认为单击“接受”并不比简单地使用软件更具法律约束力。在某些司法管辖区,接受EULA是用户安装/运行软件的权利


否则,我只需调整安装程序,使其不会显示EULA,因此我不受它们的约束。

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

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

条件:

UILevel=5或接受EULA或已安装

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

公共财产:

发射条件:

UIL级别:
每个人都应该意识到Param1 Param2和AcceptEULA不能传递给MSI。只能传递公共属性(全部大写),如ACCEPTEULA

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

条件:

UILevel=5或接受EULA或已安装

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

公共财产:

发射条件:

UIL级别:

我的理解是,GUI no/GUI适用于安装过程,而不是应用程序。无人参与安装(非GUI)安装GUI应用程序。问题中没有任何内容表明该应用程序没有GUI。这是一个完全合理的解决方案。如果应用程序没有GUI,那么它仍然可以在第一次启动时在命令行上提供“同意”和“拒绝”选项来显示它。应用程序确实有GUI,因此我同意这是一个完全合理的响应。我的理解是,GUI no/GUI适用于安装过程,而不是应用程序。无人参与安装(非GUI)安装GUI应用程序。问题中没有任何内容表明该应用程序没有GUI。这是一个完全合理的解决方案。如果应用程序没有GUI,那么它仍然可以在第一次启动时在命令行上提供“同意”和“拒绝”选项来显示它。应用程序确实有GUI,因此我同意这是一个完全合理的响应。您可能不受它们的约束,但是你可能会违反一些版权法和知识产权法,在一些法律中修改MSI。。。我不知道法律上哪个更糟。:-)不过,我不必调整微星。我可以调整运行MSI的东西,这样它就不会显示EULA。从法律上讲,这仍然是个问题。MSI是一个开放的标准,被有意设计成可转换的。@CPainter:拥有一把刀是完全合法的,它被有意设计成切割。如果我用它刺伤一个人,这会突然成为一个问题。你可能不受他们的约束,但你可能会违反一些版权和知识产权法,在一些司法中修改MSI。。。我不知道法律上哪个更糟。:-)不过,我不必调整微星。我可以调整运行MSI的东西,这样它就不会显示EULA。从法律上讲,这仍然是个问题。MSI是一个开放的标准,被有意设计成可转换的。@CPainter:拥有一把刀是完全合法的,它被有意设计成切割。如果我用它刺伤一个人,这会突然成为一个问题。这太棒了,谢谢克里斯托弗!从命令行对所有用户和单个用户有什么建议吗?我将ALLUSERS=1烘焙到我的安装中,并取消所有用户和每个用户的选择。为每个用户安装的软件提供服务是一件很麻烦的事,没有什么价值。你可以在你想要的命令行中传递ALLUSERS=1。这太棒了,谢谢Christopher!从命令行对所有用户和单个用户有什么建议吗?我将ALLUSERS=1烘焙到我的安装中,并取消所有用户和每个用户的选择。为每个用户安装的软件提供服务是一件很麻烦的事,没有什么价值。您可以在所需的命令行中传递ALLUSERS=1。