【问题标题】:Windows-Installer: How to unpack application into TempFolder, run it and delete it?Windows-Installer:如何将应用程序解压缩到 TempFolder、运行它并删除它?
【发布时间】:2023-03-06 08:54:01
【问题描述】:

我有自己的安装程序InstallInit.exe。我需要将它包含在 MSI 安装程序中,因此 windows-installer 将:

  1. 将我的 InstallInit.exe 解压到临时文件夹中
  2. 启动 [临时文件夹]\InstallInit.exe /withargumets
  3. 删除[临时文件夹]\InstallInit.exe

你有什么建议吗?我只知道如何执行第 2 步(通过自定义操作)。

注意1:我使用VS2010创建安装程序。

注意2:我也可以使用另一个文件夹(即程序文件中的目标目录)。这将解决#1。安装完成后我只需要删除InstallInit.exe即可。

【问题讨论】:

    标签: windows-installer temporary-files


    【解决方案1】:

    (1) 将 InstallInit.exe 放入 Binary-Table
    (2) 为解包创建一个CustomAction
    (3) 为 Launch 创建一个 CustomAction
    (4) 更改RemoveFile-Table - 添加InstallInit.exe (InstallMode = 1)

    【讨论】:

    • 您能说得更具体些吗?我不知道如何执行您的步骤 1,2 和 4。在 VS2010 中是否可以执行这些步骤?
    • 你为什么不用wix?不确定上述步骤是否适用于 VS。
    • 我们已经使用了基于 NSIS 的安装程序,这 3 个步骤很容易在其中实现。但客户需要 MSI 安装程序,因为他想通过“组策略”管理其网络中的安装。 (说实话,我对“组策略安装”知之甚少,所以我不知道它是否真的只适用于 MSI 安装程序)
    【解决方案2】:

    作为解决方案的一部分,创建一个执行步骤 1-3 的程序并将该程序作为自定义操作调用

    【讨论】:

    • 恐怕这是不可能的。 InstallInit.exe 怎么做第 1 步:从哪里解压?如果 InstallInit.exe 正在运行,它如何执行第 3 步:删除自身?
    • 作为解决方案的一部分,您创建一个项目,例如 PREINSTALL.EXE,它执行步骤 1-3。您将 PREINSTALL.EXE 添加为自定义操作
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-08-18
    • 2019-03-23
    • 2014-03-04
    • 1970-01-01
    • 1970-01-01
    • 2011-02-17
    • 2020-04-27
    相关资源
    最近更新 更多