我現在正在使用wix並開發了一個安裝程序。此安裝程序調用C++自定義操作DLL。 DLL和安裝程序都正在構建,但是當我去安裝它時,安裝程序以「安裝程序嚮導由於錯誤提早結束」而結束「任何人都知道可能的答案?從C++自定義動作DLL調用函數的問題WIX
這是C++ DLL函數:
extern "C" UINT __stdcall StopOrcService(MSIHANDLE hInstall)
然後我繼續在其下與用於功能的代碼。然後我使用def文件導出它。
<CustomAction Id='StopOrcService' BinaryKey='StopOrcService' DllEntry='StopOrcService' Execute='immediate' Return='check'/>
<InstallExecuteSequence>
<Custom Action='StopOrcService' After='ProcessComponents' />
</InstallExecuteSequence>
<Binary Id='StopOrcService' SourceFile='SetupDLL.dll' />
這是我的wix代碼。
首先我想知道的是爲什麼要自定義操作來停止服務。你的出口報表可能會搞砸。看看Depends中的DLL,看看你是否看到了導出的函數。 – 2012-07-26 16:08:22
另一件事是您的CA被安排執行。在需要提升的機器上(例如啓用UAC),這經常會失敗,因爲執行安裝程序的人可能無權執行所需的操作。 – 2012-07-26 16:09:36
是的,它必須是,因爲我需要找到註冊表值,以我的應用程序將要安裝的位置。我運行了一個日誌文件,它說錯誤0x80070715:無法獲取自定義操作DLL的文件版本,儘管我已經向我的DLL添加了一個版本號 – 2012-07-26 16:19:07