0

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

我在 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 动作都必须出现在 InstallExecuteSequence 表中。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 上没有功能文件。我认为这可能是由序列号引起的,但我不知道如何修复它们,有人可以帮忙吗?

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

4

1 回答 1

0

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

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

于 2011-04-08T11:37:54.413 回答