我的主Product.wxs文件中引用了一个错误对话框(库的一部分-ErrorDialog.wxs)。我的安装程序没有任何问题,直到我添加了.NET 4的要求,并尝试在没有.NET 4 的VM上运行安装程序
<Condition Message= "You must install Microsoft .NET Framework 4.0 or higher.">
<![CDATA[Installed OR NETFRAMEWORK40FULL]]>
</Condition>
现在,当我达到这个条件时,我没有像预期的那样显示错误消息,而是得到"错误2834:对话框上的下一个指针ErrorDialog不形成单个循环"
我在底部包含了我的ErrorDialog。我是WiX的新手,并试图遵循错误对话框所需的文档。有什么想法为什么不起作用吗?
<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<Fragment>
<UI>
<Property Id="ErrorDialog" Value="ErrorDialog"/>
<Dialog Id="ErrorDialog" Width="370" Height="270" Title="[ProductName]" ErrorDialog="yes">
<Control Id="ErrorText" Type="Text" X="4" Y="71" Width="341" Height="80" TabSkip="no"/>
<Control Id="A" Type="PushButton" X="300" Y="240" Width="56" Height="17" TabSkip="yes" Text="Abort">
<Publish Event="EndDialog" Value="ErrorAbort">1</Publish>
</Control>
<Control Id="I" Type="PushButton" X="300" Y="240" Width="56" Height="17" TabSkip="yes" Text="Ignore">
<Publish Event="EndDialog" Value="ErrorIgnore">1</Publish>
</Control>
<Control Id="C" Type="PushButton" X="300" Y="240" Width="56" Height="17" TabSkip="yes" Text="Cancel">
<Publish Event="EndDialog" Value="ErrorCancel">1</Publish>
</Control>
<Control Id="N" Type="PushButton" X="300" Y="240" Width="56" Height="17" TabSkip="yes" Text="No">
<Publish Event="EndDialog" Value="ErrorNo">1</Publish>
</Control>
<Control Id="O" Type="PushButton" X="300" Y="240" Width="56" Height="17" TabSkip="yes" Text="OK">
<Publish Event="EndDialog" Value="ErrorOk">1</Publish>
</Control>
<Control Id="R" Type="PushButton" X="300" Y="240" Width="56" Height="17" TabSkip="yes" Text="Retry">
<Publish Event="EndDialog" Value="ErrorRetry">1</Publish>
</Control>
<Control Id="Y" Type="PushButton" X="300" Y="240" Width="56" Height="17" TabSkip="yes" Text="Yes">
<Publish Event="EndDialog" Value="ErrorYes">1</Publish>
</Control>
<Control Id="Banner" Type="Bitmap" X="0" Y="0" Width="370" Height="44" TabSkip="no" Text="Banner" />
<Control Id="Banner" Type="Line" X="0" Y="44" Width="370" Height="0" />
<Control Id="Bottom" Type="Line" X="0" Y="234" Width="370" Height="0" />
<Control Id="Title" Type="Text" X="15" Y="6" Width="340" Height="15" Transparent="yes" NoPrefix="yes" Text="An Error Occurred." />
</Dialog>
</UI>
</Fragment>
</Wix>
我有一个类似的错误,我通过删除除ErrorText
控件之外的所有控件上的TabSkip="no"
来修复它。