我找到的关于如何做到这一点的唯一建议是,我可以在msi的名称中使用参数(即我想要传递的值),然后在安装它的客户端上,我可以从msi中提取名称并在那里使用它们。显然,以msi的名称公开这些值并不理想。我已经考虑过使用ClickOnce/Wix/标准安装程序来实现这一点,但我总是不得不将我的参数传递给msiexec,在我看来,这意味着我在服务器上,而不是在客户端,所以它会在服务器上安装我不想要的东西。除非我从根本上遗漏了什么?
发布于 2019-02-22 06:45:18
参考: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,然后为最终用户提供下载msi的url。
如果我们使用
,那么它将安装在服务器上,因为它是服务器端代码。
如果您登录到服务器并执行msiexec命令,那么是的,它将安装在服务器上。您要做的是创建每个用户的转换或烘焙每个用户的msi,然后为最终用户提供一个下载链接。
如果你有问题或者有什么不清楚的地方,请告诉我。
归根结底,我认为一个更好的策略是让用户连接到互联网一次,并以这种方式给他们一个唯一的用户id。然后将唯一id存储在注册表(或数据库、配置文件等)中,并始终在使用它进行任何外部调用之前检查唯一id是否存在。
https://stackoverflow.com/questions/54802158
复制相似问题