wix setup不安装VS 2005合并模块文件

时间:2011-04-08 09:22:09

标签: wix setup-project merge-module

这可能是一个愚蠢的问题,但我花了几个小时测试各种可能性,但没有找到答案。

我在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:必须在InstallExecuteSequence表中提供MsiPublishAssemblies和MsiUnpublishAssemblies操作。   ICE83: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上没有功能文件。我认为它可能是由序列号引起的,但我没有任何想法如何修复它们,任何人都可以帮忙吗?

如果需要更多信息,我一定会提供。

1 个答案:

答案 0 :(得分:0)

我可以想到许多可能出错的事情。我会查看安装日志以查看文件是否已安装,而不是您希望安装它们的位置。我知道VDPROJ MSM存在很多问题,包括错误地编写目录表。

您可能希望查看我创建的名为IsWiX(CodePlex.com)的开源项目。它被设计为WiX Merge模块项目的UI创作工具,它还允许您使用传统WiX XML添加额外元数据的原始功能。结果是一个非常干净的合并模块,可以被InstallShield,WiX,VDPROJ等人使用。