2015-09-07 23 views
0

我需要在安裝MSI包期間執行一個DLL。該DLL將創建一個DSN。我爲此添加了自定義操作。WIX自定義動作錯誤

<Binary Id="CustomActionBinary" SourceFile="C:\MemDbDrv_3010.dll"/> 
    <CustomAction Id="CustomActionId" BinaryKey="CustomActionBinary" DllEntry="SelfInstall" Execute="immediate" Return="check" /> 

    <InstallExecuteSequence> 
     <Custom Action="CustomActionId" Before='InstallFinalize'/> 
    </InstallExecuteSequence> 

它編譯的很好。但是,在安裝軟件包時,出現以下錯誤 「此Windows安裝程序軟件包存在問題。無法運行此安裝所需的DLL。請與您的支持人員或軟件包供應商聯繫」 您可以請幫忙嗎?可能是分辨率

回答

0

您的自定義操作崩潰或未加載,因此您可能需要說出它是什麼語言,並擔心丟失依賴關係,或者如果您沒有得到任何相關信息,甚至會顯示代碼。但是:

  1. 立即自定義操作在任何安裝之前運行,因此如果它有任何依賴Dll,那麼它們將不會被安裝。

  2. 立即自定義操作不應該改變系統,因爲在安裝失敗的情況下它們不能被撤消。應該推遲迴滾才能撤消它。

  3. 它不會立即運行,所以如果它需要特權才能工作,那麼它會失敗。如果系統帳戶是模擬人員=否,則延期CA會與系統帳戶一起運行,因此您可能需要這樣做。