2013-11-22 48 views
0

我正在創建一個wix刻錄自定義引導程序應用程序的dll。如何打包CustomBootstrapperApplication.dll的依賴項?

在允許安裝完成之前,安裝程序需要執行一些驗證。爲此,我使用第三方DLL。當我運行安裝程序exe時,我得到一個錯誤,指出我的電腦缺少dll。我試圖像這樣打包:

<BootstrapperApplication SourceFile="$(var.Build.Output)MyCustomBootstrapperApplication.dll"> 
    <Payload Id="ThirdPartyDependencyDll" SourceFile="$(var.Build.Output)ThirdPartyDependency.dll"/> 
</BootstrapperApplication> 

但是,這似乎並不奏效。有沒有辦法創建一個自定義引導程序和打包依賴dll?

謝謝。

+0

有效負載dll,ThirdPartyDependency.dll確實被提取到與MyCustomBootstrapperApplication.dll相同的臨時文件夾中。但是,我猜MyBurnInstaller.exe在該位置找不到它。也許MyBurnInstaller.exe動態加載MyCustomBootstrapperApplication.dll及其完整路徑,但刻錄不會將該路徑添加到其用於解析其他dll的搜索路徑。這似乎不奇怪,它不會那樣做。 –

回答

0

我找到的解決方案是將dll切換到延遲鏈接。然後,在BootstapperApplicationCreate中,使用AddDllDirectory將temp路徑添加到進程的dll搜索路徑,然後在LoadLibraryEx上添加指定的標誌以使其搜索修改後的路徑。

相關問題