1

我有 3.14 版的 Wix 工具集和 VS2017 以及以下问题......当我尝试使用预定义的 WixUI_Minimal 获取我自己的对话框顺序时。同样的问题出现在 3.11 工具集中

  1. 步骤 在 VS2017 中创建 Wix 项目
  2. 复制 WixUI_Minimal.wxs 从 .\wix3-develop\wix3-develop\src\ext\UIExtension\wixlib
  3. 将文件 WixUI_Minimal.wxs 重命名为 Custom_Minimal.wxs 并包含到项目中
  4. Custom_Minimal.wxs 中的更改:

    <Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"> <Fragment> <UI Id="Custom_Minimal">

  5. 将 Custom_Minimal 引用添加到 Product.wxs:

    <Product Id="398c09df-6b61-4b0b-bf18-075a0bb98300" Name="SetupProject2" Language="1033" Version="1.0.0.0" Manufacturer="STH" UpgradeCode="524cff23-7bce-4078-9fb9-51b2eb7a844c"> <Package InstallerVersion="200" Compressed="yes" InstallScope="perMachine" /> <UIRef Id="Custom_Minimal" />

  6. 尝试构建但有很多错误:

    Severity Code Description Project File Line Suppression State Error Duplicate symbol 'Property:WixUI_Mode' found. This typically means that an Id is duplicated. Check to make sure all your identifiers of a given type (File, Component, Feature) are unique. SetupProject3 C:\Users\...\source\repos\MtPubSubExample-mt3\SetupProject3\Custom_Minimal.wxs 28

还有更多相似...

有谁知道为什么会这样??

4

3 回答 3

5

我知道这很旧,但我只是遇到了同样的问题,这非常令人沮丧。

似乎<InstallUISequence>在您的自定义 UI 中包含相同内容并使用 Wix 定义的对话框会以某种方式引入其中一个也具有<InstallUISequence>相同对话框的 UI。

对于 WixUI_Minimal 你可能有

<InstallUISequence>
     <Show Dialog="WelcomeDlg" Before="WelcomeEulaDlg">Installed AND PATCH</Show>
     <Show Dialog="WelcomeEulaDlg" Before="ProgressDlg">NOT Installed</Show>
</InstallUISequence>

包含在您的自定义 UI wxs 中。您可以通过定义自己的 WelcomeDlg 和 WelcomeEulaDlg(使用修改后的名称)并使用它们而不是 wix 版本来解决此问题。

或者,您可以<InstallUISequence>从 UI 中删除 。我想我可能必须添加一个订单,但它似乎已经先使用了“WelcomeDlg”,所以只需删除它就<InstallUISequence>足够了。我只需要更新新窗口的发布事件,以便在单击下一步/返回时正确移动到下一个对话框。

于 2017-12-08T16:31:52.840 回答
0

我也有这个错误。它的发生是因为与InstallUISequence. 如果您有相同的规则,请尝试更改条件。

例如:在我有:

<Show Dialog="WelcomeDlgCustom" Before="MyDlg" Overridable="yes">(NOT Installed AND NOT PREVIOUS_VERSION) OR PATCH</Show>

在同一个 wxs 文件中,我有:

<Publish Dialog="DbUpgradeWarningDlg" Control="Back" Event="NewDialog" Value="WelcomeDlgCustom">1</Publish>

所以我只是添加了一些条件来打破碰撞并添加了 Order="1",我将其更改为:

<Publish Dialog="DbUpgradeWarningDlg" Control="Back" Event="NewDialog"
> Value="WelcomeDlgCustom" Order="1">PATCH AND BUILD</Publish>
于 2019-12-22T13:58:25.663 回答
0

Minimal 主题也有问题,请尝试使用没有 InstallUISequence 标志且易于修改的 WixUI_InstallDir

于 2019-06-03T06:13:10.163 回答