【问题标题】:Commiting .exe fails using Custom Action in Installer Project在安装程序项目中使用自定义操作提交 .exe 失败
【发布时间】:2019-01-09 16:09:53
【问题描述】:

我正在尝试在 VS17 安装程序项目中为一堆其他 .EXE 文件创建一个 .MSI 安装程序(其他安装程序的简单设置)。 主要思想是使用我的项目安装大约5个不同的程序,一个接一个。我想强调一下,EXE 不是解决方案的一部分(例如,其中之一是我从 Internet 下载的 Notepad++ 的安装程序)。

我将所有 .EXE 文件加载到自定义操作的提交部分。当我的安装程序运行时,它确保将所有 .EXE 文件放置在正确的位置,但是当第一个文件正在吃午饭时,我会收到以下消息:

“正在运行另一个安装”

(指的是我自己的安装程序)。 我别无选择,只能关闭此窗口并离开当前安装,然后我自己的安装程序失败:

“..作为设置的一部分运行的程序未按预期完成...”

结果是一种死锁......最终,我不得不取消并且无法安装任何东西。

我了解 Windows 不能同时运行多个安装程序...在我的 .MSI 安装程序完成后,我可以做些什么来一一午餐我的所有 .EXE 文件?

【问题讨论】:

  • 你试过Silent Install Builder吗?
  • 买不起……难道没有办法用 VS2017 Installer 项目做类似的事情吗?

标签: .net visual-studio-2017 advanced-installer


【解决方案1】:

我找到了适合我的解决方案, Windows 安装程序不会同时运行一个以上的安装过程,因此我所做的是:

方法 A(最快):我在自定义操作的提交部分使用了一个 .vb 文件,并用它来运行我的设置。

方法 B(更好):覆盖 Install Class 中的 Commit 方法并从那里调用我的所有设置(通过一个批处理文件)。为了让它在安装后运行,我必须在所有自定义操作部分(安装、提交、回滚和卸载 - 而不仅仅是在提交部分)设置项目的主要输出。

工作得很好。 在这种情况下,所有设置都与主安装分开运行,因此主安装程序会通知用户安装结束,然后才开始所有设置。

【讨论】:

    猜你喜欢
    • 2010-12-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多