我正在使用Wix Toolset 3.11,並試圖創建一個Wix引導程序,它正在爲我的軟件安裝一個非常大的先決條件 - 一個傳統的InstallShield可執行文件,在〜600文件夾中找到約5000個相關文件。我已經將所有這些文件壓縮到大約3GB的單個自解壓存檔中。嘗試構建時出現以下錯誤:Wix Bootstrapper與大包
light.exe(0,0):錯誤LGHT0001:算術運算導致溢出。
這裏是引導程序我目前相關的XML:
<Chain>
<PackageGroupRef Id="MyPrerequisites"/>
<PackageGroupRef Id="ReallyBigExe"/>
<PackageGroupRef Id="OtherStuff"/>
</Chain>
<Fragment>
<util:RegistrySearch Id=ReallyBigExeFound" Key="Assume searching stuff is here"/>
<PackageGroup Id=ReallyBigExe">
<ExePackage InstallCondition="ReallyBigExeFound"
Compressed="no"
DisplayName="Install Really Big Thing"
Permanent="no"
SourceFile="Packages\ReallyBigThing.exe"
Name="ReallyBigThing.exe"/>
</PackageGroup>
</Fragment>
我試過的壓縮,緩存,名稱等,而且所有結果在相同的錯誤不同的變體。我知道這是由於包含的EXE文件很大;請參閱Github Issue here。
我也看到,分離的容器應該幫助解決這個問題。我已經嘗試了使用容器與我的PackageGroup的幾種組合,也無濟於事。
所以,問題:我如何在安裝包中包含這個非常大的exe包,讓我可以將它安裝到包鏈中,但不會將其嵌入到引導程序數據文件中?
我無法加速bootstrappers,但是prereq的格式是什麼?它是一個封裝在EXE中的MSI文件嗎?如果是這樣,你如何編譯它?你可以用外部cab文件編譯它嗎?你可以使用2個外部cab文件來讓每個文件都小於2GB?我沒有使用它,但幾個開發人員推薦[dotnetinstaller bootstrapper](http://dblock.github.io/dotnetinstaller/)。只是一個建議,我的頭頂,因爲它看起來像你可能沒有運氣與燒傷。 –
先決條件是已將cab文件和可執行文件壓縮到一個自解壓歸檔文件中的集合。這是一個傳統的InstallShield安裝程序,在〜600個有效載荷文件夾中包含〜5000個有效載荷文件。 我會嘗試dotnetinstaller,但使用Wix也是該項目的要求之一。 –
或者,嘗試替換5000個文件的生成有效內容元素的單個大檔案。 –