Windows installer 安装VC++;MSI可重新分发的套件 随着部署在MSI机柜中的一对文件的集成,MSI需要生成一个在VisualC++中开发的自定义EXE。通过在MSI安装程序中实现自定义脚本,可以实现此自定义可执行文件生成要求。即使MSI的自定义脚本已成功生成自定义可执行文件,但由于目标系统上缺少必要的系统库,操作系统仍无法运行该可执行文件。安装VC++可再发行工具包是在目标系统上部署必要的系统库,因此此工具包应作为已安装的应用程序在目标系统中提供,以便自定义exe正确执行。 由于此VC++Redist工具包是此自定义可执行文件的先决条件,因此我们考虑在生成自定义可执行文件之前从MSI安装程序本身安装此VC++Redist工具包。我们成功地通过用于生成自定义可执行文件的相同自定义脚本生成了VC++Redist工具包。MSI执行完成后,我们可以在添加/删除程序列表中看到这个VC++Redist工具包。但问题是,即使安装了此工具包,自定义可执行文件也无法识别工具包的存在,因此自定义可执行文件仍然无法运行。 您能否指导我们在MSI部署期间安装应用程序,并立即激活已安装的应用程序(无需等待MSI执行完成)完成后,MSI安装程序的其他子进程可以识别应用程序的存在?

Windows installer 安装VC++;MSI可重新分发的套件 随着部署在MSI机柜中的一对文件的集成,MSI需要生成一个在VisualC++中开发的自定义EXE。通过在MSI安装程序中实现自定义脚本,可以实现此自定义可执行文件生成要求。即使MSI的自定义脚本已成功生成自定义可执行文件,但由于目标系统上缺少必要的系统库,操作系统仍无法运行该可执行文件。安装VC++可再发行工具包是在目标系统上部署必要的系统库,因此此工具包应作为已安装的应用程序在目标系统中提供,以便自定义exe正确执行。 由于此VC++Redist工具包是此自定义可执行文件的先决条件,因此我们考虑在生成自定义可执行文件之前从MSI安装程序本身安装此VC++Redist工具包。我们成功地通过用于生成自定义可执行文件的相同自定义脚本生成了VC++Redist工具包。MSI执行完成后,我们可以在添加/删除程序列表中看到这个VC++Redist工具包。但问题是,即使安装了此工具包,自定义可执行文件也无法识别工具包的存在,因此自定义可执行文件仍然无法运行。 您能否指导我们在MSI部署期间安装应用程序,并立即激活已安装的应用程序(无需等待MSI执行完成)完成后,MSI安装程序的其他子进程可以识别应用程序的存在?,windows-installer,Windows Installer,要使用MSI安装可再发行文件,建议安装。这比自定义操作要稳定得多,正如您所做的那样 要使新安装的应用程序识别可再发行的文件,请确保在安装过程结束时或非常接近安装过程时使用延迟的自定义操作启动该文件,以便系统中的合并模块注册的DLL可用 没有办法(建议)使可再发行文件更早地从MSI包在计算机上可用。在启动主MSI之前,您可以使用引导程序将它们作为先决条件安装,但这意味着您有一个EXE作为输出包,它将先决条件和主MSI包捆绑在一起。几乎不可能从问题中诊断此问题。总是喜欢用/MT构建这些类型的help

要使用MSI安装可再发行文件,建议安装。这比自定义操作要稳定得多,正如您所做的那样

要使新安装的应用程序识别可再发行的文件,请确保在安装过程结束时或非常接近安装过程时使用延迟的自定义操作启动该文件,以便系统中的合并模块注册的DLL可用


没有办法(建议)使可再发行文件更早地从MSI包在计算机上可用。在启动主MSI之前,您可以使用引导程序将它们作为先决条件安装,但这意味着您有一个EXE作为输出包,它将先决条件和主MSI包捆绑在一起。

几乎不可能从问题中诊断此问题。总是喜欢用/MT构建这些类型的helper exe程序,这样你就不必在意了。我在最后启动了自定义操作。但事情并没有成功。我正在使用MakeMSI构建安装程序。您是否已将自定义操作设置为延迟执行?是的,我将该操作设置为延迟。当我删除自定义操作时,MSI成功,文件在Windows\WinSXS更新。但是,当我包含自定义脚本时,exe无法识别DLL,因此失败。因此,MSI将回滚所有更改。