Windows安装程序:安装完成后运行exe

本文关键字:安装 运行 exe 程序 Windows | 更新日期: 2023-09-27 18:08:03

我有一个msi。在它我有几个配置文件(a.config等)和前任(jux.exe等)。

在我的msi中,我为其中一个exe (jux.exe)创建了一个自定义动作-提交。我使installerclass为假。

这个想法是让msi在安装后立即调用jux.exe

jux可以正常启动,直到它尝试验证一些文件(jex.exe, jax.exe等)的存在,并读取msi内的文件(a.config, b.config等)。似乎jux.exe找不到文件。

我不应该使用commit吗?想法吗?

Windows安装程序:安装完成后运行exe

很可能失败,因为您对文件的位置进行了假设,而这些假设是不正确的。您的exe正在使用系统帐户和未知的工作目录从msiexec.exe运行。它不是在一个交互式用户shell中运行的,它使用资源管理器设置工作目录并使用您的凭据运行它。如果你的代码只是试图打开.config而没有指定完整的确切路径,那么它将找不到它。

所有的VS自定义操作运行后,一切都安装,所以你很幸运。您不需要提交自定义操作-安装自定义操作也可以工作。在安装完所有文件后,也会调用该函数。您不清楚为什么要验证这些文件的存在—这没有意义。MSI安装可以正常工作并安装所有内容,也可以失败、回滚并将系统恢复到以前的状态。所以检查它是否安装了文件是没有意义的。

使用此项目类型没有解决此问题的好方法。它只是不能完全控制何时安排自定义操作,并将其归结为过于简单的选择。如果我是你,我会将此自定义操作纳入WiX合并模块,然后将其合并到您的VDPROJ安装程序中(或使用完整的WiX)。