Wix-对自定义对话框的未解析引用

Wix-对自定义对话框的未解析引用,wix,custom-action,customdialog,wix3.9,Wix,Custom Action,Customdialog,Wix3.9,在我的安装程序中,我尝试启动一个windows程序,用户必须在该程序上执行一些与给出说明的页面并行的操作。为此,我添加了一个新页面。现在,我想在此新对话框之前启动自定义操作,但出现以下错误: 错误LGHT0094:未解析对“产品:*”部分中符号“WixAction:InstallUISequence/UserRegistrationDlg”的引用 最简单的例子: <?xml version='1.0' encoding='windows-1252'?> <Wix xmlns='

在我的安装程序中,我尝试启动一个windows程序,用户必须在该程序上执行一些与给出说明的页面并行的操作。为此,我添加了一个新页面。现在,我想在此新对话框之前启动自定义操作,但出现以下错误: 错误LGHT0094:未解析对“产品:*”部分中符号“WixAction:InstallUISequence/UserRegistrationDlg”的引用

最简单的例子:

<?xml version='1.0' encoding='windows-1252'?>
<Wix xmlns='http://schemas.microsoft.com/wix/2006/wi'>
  <Product Name='Foobar 1.0' Id='*' Language='1033' Codepage='1252' Version='1.0.0' Manufacturer='Acme Ltd.'>
    <Package InstallerVersion='300' Compressed='yes'  />
    <Directory Id='TARGETDIR' Name='SourceDir'/>

    <UI Id="MyWixUI_FeatureTree">
      <DialogRef Id="TheNewDialog" />
      <UIRef Id="WixUI_FeatureTree" />
      <Publish Dialog="WelcomeDlg" Control="Next" Event="NewDialog" Value="TheNewDialog" Order="2">LicenseAccepted = "1"</Publish>
      <Publish Dialog="LicenseAgreementDlg" Control="Back" Event="NewDialog" Value="TheNewDialog">1</Publish>
    </UI>

    <CustomAction Id="WindowsFeatures" Directory="TARGETDIR" ExeCommand="OptionalFeatures.exe" Execute="immediate" Return="asyncNoWait" />
    <InstallUISequence>
     <Custom Action="WindowsFeatures" After="TheNewDialog" >
        NOT Installed AND NOT DOTNETINSTALLED
      </Custom>
    </InstallUISequence>
  </Product>

    <Fragment>
    <UI>
      <Dialog Id="TheNewDialog" Width="370" Height="270" Title="[ProductName] [Setup]" NoMinimize="yes">
        <Control Id="Cancel" Type="PushButton" X="304" Y="243" Width="56" Height="17" Cancel="yes" Text="Cancel">
          <Publish Event="SpawnDialog" Value="CancelDlg">1</Publish>
        </Control>
      </Dialog>
    </UI>
  </Fragment>
</Wix>

许可证接受=“1”
1.
未安装和未安装
1.
我尝试将其设置为After=“WelcomeDlg”,而不是Before=“TheNewDialog”,但这会产生更有趣的错误:

  • 错误LGHT0094:对“片段:”节中的符号“Property:ApplicationFolderName”的引用未解析
  • 错误LGHT0094:对“片段:”节中的符号“Property:WixAppFolder”的引用未解析
我一直在四处寻找,这似乎与WixUI_Advanced有关,但我不知道我是如何触发Wix认为我在使用它的


我觉得我在做一些愚蠢的错误的引用,但我似乎无法找到正确的方法,所以我希望有人能告诉我如何让它工作。

当然,在清理所有搜索标签时,我遇到了一些解决问题的方法,然后意识到了一些细节。 问题是,我的新对话框不在“InstallUISequence”中,而是WelcomeDlg序列号上流程的一部分。因此,它不能在before/after中引用。 解决此问题的方法是,即使在“InstallUISequence”中也不要尝试设置自定义,而是将其放在按钮的发布中,以进入新页面,如按钮描述本身所示:

<Publish Event="DoAction"  Value="WindowsFeatures">1</Publish>
1
或者在以后从UI块添加时使用类似的方法

<Publish Dialog="WelcomeDlg" Control="Next" Event="DoAction" Value="WindowsFeatures" >1</Publish>
1

不过,我仍然没有将“WixUI\u Advanced”拖到故事中。

添加对C:\Program Files(x86)\WiX工具集v3.10\bin\wixutileExtension.dll的引用