2014-06-09 154 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來實現此目的?我應該使用哪個開關? –

相關問題