Windows installer 如何标记或自定义二进制文件(例如安装程序)

Windows installer 如何标记或自定义二进制文件(例如安装程序),windows-installer,installation,Windows Installer,Installation,如何使用自定义信息标记或修改.msi二进制文件 我如何为网站用户提供个人下载,以便他们不必再次登录应用程序 一些网站提供个人/定制/标记的安装程序下载 当您运行该文件时,可执行文件已经知道您是谁,并自动为您登录 例如: join.me传递演示者角色,触发另一方的下载并自动将他们连接到正确的会议 spotify有一个下载,不需要您登录。 您可以参数化MSI文件,以便根据通过msiexec.exe命令行传递给它的值,使用不同的设置进行安装。您启动的安装可以基于您定义的msiexec.exe开关以静默

如何使用自定义信息标记或修改.msi二进制文件

我如何为网站用户提供个人下载,以便他们不必再次登录应用程序

一些网站提供个人/定制/标记的安装程序下载

当您运行该文件时,可执行文件已经知道您是谁,并自动为您登录

例如:

join.me传递演示者角色,触发另一方的下载并自动将他们连接到正确的会议 spotify有一个下载,不需要您登录。
您可以参数化MSI文件,以便根据通过msiexec.exe命令行传递给它的值,使用不同的设置进行安装。您启动的安装可以基于您定义的msiexec.exe开关以静默或交互方式运行

您可以使用Javascript或其他方式直接从网页自动生成有问题的命令行。您还可以使用更高级的选项:transforms自定义MSI

我将链接到前面的答案,而不是全部重写,该答案描述了如何在安装过程中使用在msiexec.exe命令行中设置的公共属性或转换来修改MSI文件中的设置:有点长,但第一部分仅与您的情况相关

可以使用公共属性自动生成的命令行示例: msiexec.exe/i MySetup.msi/L*v%TMP%\MyLog.log SERIALKEY=123-456-789电子邮件=myemail@somedomain.comLOGINNAME=MyLogin LOGINPASSWORD=MyPassword 显然,在通过命令行输入密码时要三思而后行

可以使用转换自动生成的示例命令行: msiexec.exe/i MySetup.msi/L*v%TMP%\MyLog.log TRANSFORMS=MyTransform.mst 在MyTransform.mst中,您可以更改和覆盖整个MSI文件中几乎任何您想要的内容,包括设置属性表中第一个示例中的属性

你可以。有空的时候我会找到一个更好的链接

更新:这里展示了如何以各种方式使用MSIAPI。显示了如何生成转换以及其他内容。还有一个示例专门用于创建转换:

这些脚本应与Visual Studio和SDK一起安装。也许给朋友发一封有耐心的邮件吧!有了这个安装,让他们为你拉链,如果你是在赶时间,或安装整个shebang自己

MSIAPI可以通过Javascript访问,但我遇到了一些有点过于详细而无法解释的笨拙问题。VBScript用于测试对象模型,因此似乎工作得更好

这应该是可能的。他们告诉我。祝你好运。我17年前试过,后来放弃了。也许现在好多了

这个问题不断出现一些类似的答案:

. . .
谢谢@Stein,我使用了Orca工具来测试这些转换。不幸的是,在做任何更改后,我必须在可执行文件上签名。所以我必须签署所有这些文件:-这些是OEM版本吗?您可以只使用属性吗?OEM版本是什么意思?我们编译自己的二进制文件,我们可以对每个二进制文件进行签名,但这会使管道更加复杂,因此我正在寻找更简单的解决方案。你说的房产是什么意思?基本上是当你让其他公司为你的产品做营销时。他们将您的产品作为自己的产品销售,您提供给他们的OEM设置将显示他们的徽标和联系信息等。。。例如,一个主要的软件经销商-他们得到销售你的软件的百分比。对于属性,我指的是可以通过命令行发送给MSI的输入值:msiexec.exe/I Setup.MSI PROPERTY1=值PROPERTY2=值PROPERTY3=值等。。。你需要多少财产就有多少。