2016-09-19 42 views
1

我正在使用wix創建我們的安裝程序。我們的用戶界面團隊已經開發了我們自己的消息箱並存在於dll中。我想用我的信箱替換系統信息箱。 當我嘗試使用我們的messagebox並嘗試捕獲然後它說: InnerException System.IO.FileNotFoundException:無法加載文件或程序集'XXX'或其依賴項之一。該系統找不到指定的文件。Wix:用自己開發的自定義消息框替換System.Message

我已經在引導程序的引用中添加了dll。我如何使用它?我認爲,因爲它嵌入在exe中,所以可能找不到。任何指針?

回答

0

您需要將您的messagebox dll添加到BootstrapperApplication的Payload中。您應該能夠使用這樣的東西得到它包括:

<BootstrapperApplicationRef Id="WixExtBATheme"> 
    <Payload Name='CustomMessageBox.dll' Compressed='yes' SourceFile='$(var.OutDir)$(var.Configuration)\CustomMessageBox.dll'/> 
</BootstrapperApplicationRef> 

這樣做是告訴引導程序的程序運行時,包括該文件作爲必需的文件的一部分。當您運行Bootstrapper Exe時,它將所有有效載荷文件提取到一個臨時目錄中,然後從該目錄運行實際的setup.exe。如果你把你的DLL作爲一個有效載荷文件,它應該和setup.exe存在於同一個目錄下,並且最終會找到DLL。

+0

+1謝謝!與此我的例外已經消失,它能夠顯示消息框。但造型不可見。這種風格存在於dll本身中。對於其他視圖,它被添加爲資源dictonary,它工作正常。如何在BA中添加這種風格? 目前用於視圖它被添加這種方式: ... – Ashish

+0

當涉及到WPF和xaml我不知道發生了什麼,對不起。 –