2014-06-12 24 views
0

在我的Wix項目中,我配置了多種文化。其中一種文化需要兩個程序集(主可執行程序和其中一個DLL)的獨特圖標。在構建或安裝時即時在Wix中設置組裝圖標

我是Wix新手,首先。我有兩個想法來解決這個問題。在這兩種情況下,我都會使用Einar Egilsson的InsertIcons工具,在他的博客文章here中描述。在Visual Studio中,我將配置這些程序集的項目文件以指定默認圖標。那就是沒有圖標。

然後,第一個想法是在Wix編譯期間使用InsertIcons設置程序集的圖標。因此,在處理程序集之前,我會執行InsertIcons.exe,爲正在構建的區域指定適當的圖標。儘管只有一種文化需要獨特的圖標,但我必須始終爲每個裝配設置圖標,因爲裝配會在沒有圖標的情況下生成。這種方法的問題:我不確定如何在Wix構建過程中啓動獨立的可執行文件,或者即使可以完成。

第二個想法是在安裝時使用自定義操作完成這項工作。我的理解是,我可以將InsertIcons.exe以及必要的.ICO文件作爲進入MSI的二進制文件進行封裝。然後,將程序集複製到目標文件夾後,我的自定義操作將啓動InsertIcons以設置程序集的圖標。這種方法的問題:我想我不得不將InsertIcons和.ICO文件從MSI中複製到一個臨時文件夾中。另外,我認爲如果以這種方式修改程序集,它們在卸載方案中將不會被正確刪除。

我在這些想法的正確軌道上,還是有更好的方式來完成這項工作?看起來你可以在Wix中做任何事情,但唯一的問題是找出如何真正做到這一點!

回答

0

我的解決方案是使用生成後事件將程序集的副本複製到文化文件夾(bin \ Release \ xx-XX)中。然後,使用InsertIcons來設置這些副本的文化特定圖標。爲了使InsertIcons在程序集中設置第0個圖標(如果已經有第0個圖標,它不會執行此操作),程序集項目已更改爲指定默認圖標(即沒有圖標)。

然後,在Wix中,當構建有問題的文化時,程序集將從文化文件夾(bin \ Release \ xx-XX)中取出,而不是通常的源文件夾(bin \ Release)。

相關問題