我試圖執行一個自定義操作,它寫有C#(.NET 3.5),它具有對單個DLL(也是C#3.5)的依賴關係。我在安裝中包含了.EXE和.DLL,並驗證了它們正被複制到安裝位置。但是,每次嘗試運行自定義操作時,出現以下錯誤:是否可以在管理的.EXE文件的WiX中執行自定義操作?
Action start 7:21:16:InstallFinalize。 錯誤1721.此Windows安裝程序包存在問題。此安裝完成所需的程序無法運行。聯繫您的支持人員或軟件包供應商。操作:UpgradeTo022,位置:C:\ Program Files \ Test \,命令:Upgrade-0.2.2.EXE MSI(s)(CC:38)[07:21:19:061]:Product:Test - Error 1721.這個Windows安裝程序包存在問題。此安裝完成所需的程序無法運行。聯繫您的支持人員或軟件包供應商。行動:UpgradeTo022,位置:C:\ Program Files文件\測試\,命令:升級-0.2.2.EXE
的自定義動作定義如下:
<CustomAction Id="UpgradeTo022"
Directory="INSTALLLOCATION"
Impersonate="no"
Execute="deferred"
ExeCommand='Upgrade-0.2.2.EXE'>
注:自定義操作必須是以提升的權限運行,因此延遲執行和Impersonate =「no」屬性。
它安排如下:
<InstallExecuteSequence>
<Custom Action="UpgradeTo022" Before="InstallFinalize">NOT Installed</Custom>
</InstallExecuteSequence>
文件安裝如下:
<Component Id="CMP_UpgradeCommon" Guid="8ECF5076-732E-4010-A33B-BE362D818949" Win64="yes">
<File Id="FILE_UpgradeCommonDLL"
Source="..\Upgrade\UpgradeCommon\bin\Debug\UpgradeCommon.dll" Vital="yes"/>
</Component>
我已經看到了一些典故到運行管理的EXE作爲一個自定義操作和MSIS的問題,但沒有真正的明確答案。
我也嘗試過只運行一個非常簡單的.EXE,沒有依賴作爲自定義動作,並沒有運氣。
對於創建安裝程序包來說有些新意,它很可能是要嘗試做一些不受支持的事情,或者缺少一些簡單的東西。
在此先感謝您的任何指示。
JT。