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

时间:2018-03-23 15:27:43

标签: windows-installer installer

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

如何为网站用户提供个人下载,以便他们无需再次在应用中登录?

某些网站提供个人/自定义/标记的安装程序下载。

当您运行该文件时,可执行文件已经知道您的身份并自动为您登录。<​​/ p>

例如:

  • join.me,其中传递演示者角色,触发对方下载并自动将其连接到正确的会议
  • spotify有一个下载,不需要你登录。

1 个答案:

答案 0 :(得分:1)

您可以参数化MSI文件,以便它可以根据您通过msiexec.exe命令行传递给它的值以不同的设置进行安装。您启动的安装可以根据您定义的msiexec.exe开关以静默方式或交互方式运行。

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

不是重写所有内容,而是链接到之前的答案,该答案描述了如何使用msiexec.exe命令行或转换设置的 PUBLIC PROPERTIES 在安装过程中修改MSI文件中的设置: How to make better use of MSI files (有点长,但第一部分与您的情况相关)。

  1. 您可以使用 PUBLIC PROPERTIES
  2. 自动生成的示例命令行
    msiexec.exe /i "MySetup.msi" /L*v "%TMP%\MyLog.log" SERIALKEY="123-456-789" EMAIL="myemail@somedomain.com" LOGINNAME="MyLogin" LOGINPASSWORD="MyPassword"
    

    显然要三思而后行,通过命令行推送密码。

    1. 您可以使用转换
    2. 自动生成的示例命令行
      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年前试过并放弃了它。也许现在好多了。

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