我們在VB6中開發了兩種類型的組件。我們在項目中引用的潛在通用組件,以及我們每天構建的易變的應用程序組件。常用組件被打包爲合併模塊(使用WiX),而應用程序組件映射到應用程序設置的組件。這是我們的主要.wxs的片段文件
<Component Id="MyFile15.ocx" Guid="YOURGUID-BCB7-451C-B07D-D205AEAE1EB9" >
<File Id="MyFile15.ocx" Name="MyFile15.ocx" LongName="MyFile15.ocx" KeyPath="yes" src="$(var.SrcAppBinnPath)\MyFile15.ocx" DiskId="1" />
<?include Registry_MyFile15.wxi ?>
</Component>
我們仍在使用WiX的2.0,所以我們使用的是tweaked version of tallow生產.wxi文件所有的ActiveX DLL文件/ OCX控件/ EXE文件我們正在建設的註冊表日常。我們將所有COM註冊作爲直接註冊表表項輸入,而不是com/typelib條目。我們針對傳統Windows Installer 2.0,因爲我們不需要任何新功能。
我們對一些特殊情況使用自定義操作(VC6 DLL) - MSDE設置,數據庫修補,DCOM下載/設置。我們正在使用平臺SDK引導程序,它可以下載instmsiX.exe並在原始系統(主要是9x和NTs)上準備Windows Installer。我們使用7-zip自解壓器在客戶端機器上解壓bootstrapper和msi。在某些情況下,我們在可執行文件上使用UPX --lzma,但在終端服務器上這些擴展不能很好地擴展,其中未打包的版本在會話中重複使用。
最近我們一直在使用免註冊COM將我們的客戶遷移到可移植構建。我們正在使用我們的內部UMMM tool來生成免註冊的COM清單。 SxS COM有侷限性(沒有DCOM,沒有ActiveX EXE),但允許我們在應用程序運行時更改構建 - 不會重新安裝停機時間。
來源
2010-02-05 22:59:24
wqw