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

时间:2015-01-15 13:54:23

标签: wix custom-action customdialog wix3.9

在我的安装程序中,我尝试启动一个Windows程序,用户必须在该程序上执行一些操作,并与提供说明的页面并行执行。为此我添加了一个新页面(as per this tutorial)。现在我想在这个新对话框之前启动自定义操作,但是我收到以下错误:     错误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>

我尝试代替Before =&#34; TheNewDialog&#34;,将其设置为After =&#34; WelcomeDlg&#34;但这会带来更多有趣的错误:

  • 错误LGHT0094:未解析的符号引用&#39;属性:ApplicationFolderName&#39;在“片段:&#39;。
  • 错误LGHT0094:尚未解析的符号&#39;属性:WixAppFolder&#39;在“片段:&#39;。

我一直在环顾四周,这似乎与WixUI_Advanced有关,但我不知道我是如何触发Wix认为我正在使用它。

我感觉我做错了,引用错误,但我似乎无法正确地指责我,所以我希望有人可以告诉我如何让这个工作。

2 个答案:

答案 0 :(得分:-1)

当然,在清理所有搜索标签时,我遇到了解决它的问题然后实现了一些细节。 问题是我的新对话框不在&#39; InstallUISequence&#39;但是欢迎来自WelcomeDlg序列号的部分流程。因此,它不能在之前/之后引用。 对此的解决方案是即使在&#39; InstallUISequence&#39;中也不要尝试设置自定义。但是把它放在按钮的发布上,就像按钮描述本身一样:

<Publish Event="DoAction"  Value="WindowsFeatures">1</Publish>

或稍后从UI块添加它

时喜欢这样
<Publish Dialog="WelcomeDlg" Control="Next" Event="DoAction" Value="WindowsFeatures" >1</Publish>

我仍然没有得到“WixUI_Advanced&#39;虽然被拖进了故事。

答案 1 :(得分:-2)

添加对C:\ Program Files(x86)\ WiX Toolset v3.10 \ bin \ WixUtilExtension.dll的引用