有没有人在集成API下载.msi文件和WiX提供的合并模块时遇到任何问题?或任何其他MSI /安装程序工具?
当我添加各种功能时,它将接受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运行时的信息(我假设我以后可以使用它?)但还没有尝试过。
思想?
答案 0 :(得分:1)
我会仔细阅读MSI Best Practice #43和我的反驳In Defense of Merge Modules。
通常最好不再使用第三方合并模块。通过bootstrapper / chainer引入的独立MSI更好。如果需要,使用合并模块构建一个独立的MSI并将其放入您的chainer中。关键是,不要因为可能通过合并模块引入的问题而污染您的MSI。
他们在其中使用名为SelfReg的自定义操作的事实确实让我对这些模块的质量感到疑惑。自我登记(任何形式的登记)通常都是非常糟糕的事情。