用户从浏览器下载MSI时,如何将参数与MSI一起传递?

时间:2019-02-21 08:10:53

标签: c# windows-installer msiexec

关于如何执行此操作的唯一建议是建议我可以使用msi名称中的参数(即我要传递的值),然后在已安装该参数的客户端上拉出名字从MSI出来并在那里使用它们。显然,以msi的名称公开值不是理想的。 我已经研究过使用ClickOnce / Wix / standard安装程序来实现此目的,但我一直不得不将参数传递给msiexec,在我看来,这意味着我在服务器上而不是客户端上,因此它将安装该东西在服务器上,这不是我想要的。除非我从根本上缺少这里的东西?

1 个答案:

答案 0 :(得分:0)

REF:How to Download MSI installer with argument for user-id

正如我在链接的答案中提到的那样,您可以对每个用户进行转换,并为用户提供一个包含CMD / PS1 / BAT文件的ZIP文件,以通过转换启动msi,例如:

msiexec -i c:\temp\The.msi transforms=c:\temp\YourPerso.mst

或者,您可以在服务器上“烘焙”每个用户的msi,然后为最终用户提供一个URL以下载msi。

  

如果我们使用msiexec,则它将安装在服务器上,因为它是服务器端代码。

如果登录到服务器并执行msiexec命令,则可以,它将安装在服务器上。您要做的是创建每个用户的转换或烘焙每个用户的msi,然后为最终用户提供下载链接。

如果您有任何疑问或不清楚的地方,请告诉我。


最终,我认为一种更好的策略是使用户一次连接到互联网,并以这种方式为他们提供唯一的用户ID。然后,将唯一ID存储在注册表(或数据库,配置文件等)中,并在使用它进行任何外部调用之前始终检查unqiue ID是否存在。