【问题标题】:Silent installation msi静默安装 msi
【发布时间】:2023-04-06 08:03:02
【问题描述】:

0x80070652 - 安装 VS 2012 C++ 可再发行组件时。 大家好,

最近几天我遇到了一个奇怪的问题,我一直在论坛、谷歌等中寻找解决方案。 到目前为止,找不到类似的问题:

场景:

  1. 我有一个部署我们公司产品的“基本 MSI”项目。
  2. 一切正常,直到我需要添加 VS 2012 C++ 可再发行组件的安装。
  3. 我正在使用 installscript 启动命令行以安静地安装它 - 'vcredist_x64.exe /q'。
  4. 如果将自定义操作添加到执行序列中,则以下错误来自“VS 2012 C++ 可再发行组件。- 错误 0X80070652:ERROR_INSTALL_ALREADY_RUNNING。此错误是由于另一个安装已在进行中。在继续此安装之前完成该安装。
  5. 如果手动运行它,无论 IS 安装如何,一切正常。
  6. 此外,当自定义操作在 UI 序列上时 - 效果很好。 - 我不能把它留在 UI 序列上,因为我们的产品正在与我们的产品客户端一起悄悄部署。
  7. 我一直在尝试更改为不同的项目类型 - “installscript MSI”...同样的错误。

请指教,感谢您的任何意见。

【问题讨论】:

    标签: installshield


    【解决方案1】:

    简短回答:您不能从您的 MSI 中为 technical reasons 运行此可执行文件,您应该按顺序运行它们。首先是可执行文件,然后是您的 MSI(批处理文件或手动)。或者您应该制作一个按顺序运行它们的可执行文件(例如 WiX Bundle)。


    VCRedist:VS 2012 C++ 可再发行组件 vcredist_x64.exe 是一个 WiX Bundle,其中包含几个 MSI 文件。不允许您在主 MSI 安装的同时运行嵌入式/嵌套 MSI 文件。 Simple explanation here。内联解释:这是因为 MSI 文件安装为应该可以回滚的事务。因此,文件安装顺序会锁定系统,以防止安装其他 MSI 文件,而该文件已经在进行中。

    提取:您可以使用 WiX 工具包的 dark.exe:dark.exe /x D:\VCRedist vcredist_x64.exe 提取 WiX 包。必须安装 WiX 工具包,并且 dark.exe 必须在路径中,或者您必须指定其完整路径。

    Setup.exe:解决方案是在使用 WiX 创建的 setup.exe 包中按顺序运行 MSI 文件,Installshield(参见示例屏幕截图链接- more on suite projects here)、高级安装程序或类似的设置创建工具。另一种方法是简单地将运行时交付到您的安装程序旁边,并使用批处理文件按顺序安装它们,甚至通过指示用户这样做。

    合并模块:大多数 VCRedist 版本都具有可用于安装运行时的合并模块(而不是设置可执行文件)。 WiX sample。这些在构建时合并到您自己的 MSI 中,因此没有嵌套的 MSI 进程。 There are some issues with merge modules and recent VCRedist versions.


    链接:

    【讨论】:

    • 如果将自定义操作添加到执行序列中,则以下错误来自“VS 2012 C++ 可再发行组件。-错误0X80070652:ERROR_INSTALL_ALREADY_RUNNING。此错误是由于另一个安装已在进行中. 在继续此安装之前完成安装。在自定义操作中,我必须在执行顺序中选择它,以解决上述错误。
    • 由于技术原因,您无法从 MSI 内部运行此可执行文件,而应按顺序运行它们。首先是可执行文件,然后是您的 MSI(批处理文件或手动)。或者您应该制作一个按顺序运行它们的可执行文件(例如 WiX Bundle)。如何改为按顺序运行它们
    • 如答案中所述,Installshield 具有“套件项目”功能,可让您制作可执行文件,依次安装 MSI 文件、EXE 文件和其他类型的文件。请参阅上面链接的屏幕截图。 This one。 WiX 具有用于相同目的的刻录功能,而高级安装程序具有先决条件视图和其他功能。
    • 我们正在使用 install shield basic MSI roject 在静默安装 msi 期间如何以及在何处自定义 Vc++.exe。我可以看到套件 roject 的上述答案。
    • 我的简单问题是如何在 Installshiled 2o15 的基本 msi 项目中配置或自定义 VC++.exe,在 msi 静默安装期间。
    猜你喜欢
    • 2013-03-01
    • 1970-01-01
    • 2021-11-04
    • 1970-01-01
    • 2012-01-23
    • 2011-06-04
    • 1970-01-01
    • 2017-11-17
    • 1970-01-01
    相关资源
    最近更新 更多