这可能是一个愚蠢的问题,但我花了几个小时测试了各种可能性,还是没有找到答案。
我在VS 2005中准备了一个标准合并模块(它可能很好,我已经准备了标准VS 2005安装项目,包括合并模块,它正常工作)
Wix项目(主要是因为GUI的原因)要注意安装。代码示例(为简洁而缩短)
目录部分:
<Directory Id="INSTALLLOCATION" Name="sth">
<Merge Id='MyModule3' Language='1033' SourceFile='MergeModule.msm' DiskId='1' />
</Directory>
功能部分:
<Feature Id="ProductFeature3" Title="Tit" Level="1" Description='Yeah' ConfigurableDirectory='INSTALLLOCATION' Display='expand'
AllowAdvertise='no'>
<MergeRef Id='MyModule3' />
<ComponentGroupRef Id="Product.Generated" />
</Feature>
构建WIX项目后抛出如下错误:
ICE83: MsiPublishAssemblies和MsiUnpublishAssemblies动作必须同时出现在installeexecutesequence表中。MsiPublishAssemblies动作必须出现在AdvtExecuteSequence表中。
我已经添加了行:
<InstallExecuteSequence>
<Custom Action="PreventDowngrading"
After="FindRelatedProducts">NEWPRODUCTFOUND</Custom> //i suppose it doesnt influence nothing here
<MsiPublishAssemblies Sequence="1502" />
<MsiUnpublishAssemblies Sequence="1501" />
</InstallExecuteSequence>
:
<AdvertiseExecuteSequence>
<MsiPublishAssemblies Sequence="1502" />
</AdvertiseExecuteSequence>
在构建过程中没有返回任何错误,但是尽管安装了功能(在功能列表中选择),HDD上没有功能文件。我认为这可能是由序列号引起的,但我没有任何想法如何修复它们,有人可以帮助吗?
如果需要更多的信息,我一定提供。
我能想到很多可能出错的地方。我会查看安装日志,看看文件是否安装了,而不是您期望的安装位置。我知道VDPROJ MSM有很多问题,包括不正确地编写目录表。
你可能想看看我创建的一个名为IsWiX (CodePlex.com)的开源项目。它被设计为WiX Merge Module项目的UI创作工具,它还允许您使用传统的WiX XML添加额外的元数据。结果是一个非常干净的合并模块,可以被InstallShield, WiX, VDPROJ等使用。