2013-12-12 28 views
1

有沒有人將API下載.msi文件和WiX提供的合併模塊進行集成時遇到任何問題?還是其他的MSI/Installer工具?WiX 3.8和Quickbooks SDK合併模塊的問題

當我添加各種功能,將接受了Xerces 2.5.0.msm但包括任何其他類型的合併模塊將失敗,並出現以下錯誤

30>light.exe(0,0): error LGHT0204: ICE27: 'SelfUnregModules' Action in InstallExecuteSequence table in wrong place. Current: Selection, Correct: Execution 
30>light.exe(0,0): error LGHT0204: ICE27: Action: 'SelfUnregModules' in InstallExecuteSequence table must come after the 'InstallValidate' action. 
30>light.exe(0,0): error LGHT0204: ICE27: Action: 'SelfUnregModules' in InstallExecuteSequence table must come after the 'InstallInitialize' action. 
30>light.exe(0,0): error LGHT0204: ICE27: Action: 'InstallFiles' in InstallExecuteSequence table must come before the 'SelfRegModules' action. Current seq#: 4000. Dependent seq#: 2850. 

的目錄結構看起來像這樣:

<Directory Id="INSTALLDIR" Name="Datacenter"> 
      <Merge SourceFile="$(var.QuickbooksMergeModules)\Xerces2.5.0.msm" Language="$(var.LCID)" DiskId="1" Id="Xerces2.5.0.msm"></Merge> 
      <Merge SourceFile="$(var.QuickbooksMergeModules)\QBFC13_0.msm" Language="$(var.LCID)" DiskId="1" Id="QBFC13_0.msm"></Merge> 

無論如何,都無法讓它超出這個範圍。我在網上找到了關於包含VC++ 7.0運行時的一些信息(我假設我可以稍後使用?),但還沒有嘗試過。

想法?

回答

1

我會仔細閱讀MSI Best Practice #43和我有點反駁論點In Defense of Merge Modules

通常最好不要再使用第三方合併模塊。通過引導程序/引導程序引入的獨立MSI更好。如果需要,使用合併模塊構建一個獨立的MSI並將其放入您的Chainer中。關鍵是,不要污染你的MSI,可以通過合併模塊引入問題。

事實上,他們有名爲SelfReg的自定義操作在其中真的讓我懷疑這些模塊的質量。自我註冊(任何形式的)通常是一件非常糟糕的事情。