2014-06-09 127 views
0

我有一个msi。其中我有几个配置文件(a.config等)和exes(jux.exe等)。windows安装程序:安装后运行exe

在我的微星我创建了一个自定义操作 - 提交一个exe(jux.exe)。我使installerclass为假。

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

jux可直到它试图验证的某些文件(jex.exejax.exe等)和微星(a.configb.config等)内的读取文件的存在开始OK。好像jux.exe不能找到这些文件。

我不应该使用提交吗?想法?

+0

任何人都可以帮忙吗? –

回答

1

这很可能是因为您对文件的位置做出假设而失败,并且它们不正确。您的exe文件正在使用系统帐户和未知工作目录从msiexec.exe运行。它不是从一个交互式用户shell和explorer一起运行来设置工作目录并使用您的凭据运行它。如果你的代码只是试图打开a.config而不指定完整的确切路径,那么它不会找到它。

所有VS自定义操作都在所有安装完毕后运行,所以你在那里运气不错。您不需要提交自定义操作 - 安装自定义操作也可以。这也将在所有文件安装后调用。目前还不清楚为什么要验证文件的存在 - 没有意义。 MSI安装可以工作并安装一切或失败,回滚并将系统恢复到之前的状态。所以检查它安装文件没有意义。

+0

现货。谢谢! –

0

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

+0

我想要做的事情其实很简单。我想很多安装人员都在这样做。我想要做的是提取msi(包)并运行exe(安装程序)。似乎Windows安装程序应该能够做到这一点。我错了吗? –

+1

Windows安装程序可以做到这一点...... Visual Studio安装程序项目不能编写这些关系。 –

+0

你的意思是我可以通过使用msiexec来实现此目的?我应该使用哪个开关? –

相关问题