如何使用自定义信息标记或修改.msi二进制文件?
如何为网站用户提供个人下载,以便他们无需再次在应用中登录?
某些网站提供个人/自定义/标记的安装程序下载。
当您运行该文件时,可执行文件已经知道您的身份并自动为您登录。</ p>
例如:
答案 0 :(得分:1)
您可以参数化MSI文件,以便它可以根据您通过msiexec.exe
命令行传递给它的值以不同的设置进行安装。您启动的安装可以根据您定义的msiexec.exe
开关以静默方式或交互方式运行。
您可以使用Javascript或其他方式直接从网页自动生成相关命令行。您还可以使用更高级的选项自定义MSI:转换。
不是重写所有内容,而是链接到之前的答案,该答案描述了如何使用msiexec.exe
命令行或转换设置的 PUBLIC PROPERTIES 在安装过程中修改MSI文件中的设置: How to make better use of MSI files (有点长,但第一部分与您的情况相关)。
msiexec.exe /i "MySetup.msi" /L*v "%TMP%\MyLog.log" SERIALKEY="123-456-789" EMAIL="myemail@somedomain.com" LOGINNAME="MyLogin" LOGINPASSWORD="MyPassword"
显然要三思而后行,通过命令行推送密码。
msiexec.exe /i "MySetup.msi" /L*v "%TMP%\MyLog.log" TRANSFORMS="MyTransform.mst"
在MyTransform.mst
内,您可以在整个MSI文件中更改和覆盖您想要的任何内容 - 包括设置属性表中第一个样本的属性。
你可以auto-generate the transform itself using the MSI API。我有一个时刻,我会挖出一个更好的链接。
更新:a whole family of sample VBScripts显示了如何以各种方式使用MSI API。 widiffdb.vbs显示了如何生成变换(以及其他内容)。还有一个专门用于创建转换的示例:wigenxfm.vbs。
这些脚本应与Visual Studio和SDK一起安装 。也许给这位朋友发送电子邮件(一个有很多耐心的朋友!),如果你匆忙,可以给它们拉链,或者自己安装整个shebang。
可以使用Javascript访问MSI API,但我遇到了一些有点过于详细无法解释的笨重问题。 VBScript用于测试对象模型,因此看起来效果更好。
应该可以invoke Windows Installer from an URL。所以他们告诉我。祝你好运:-)。我大约17年前试过并放弃了它。也许现在好多了。
还有一些类似的答案(这个问题不断出现):