WiX ComboBox元素在XML Schema中无效

时间:2014-11-11 13:05:08

标签: c# xml combobox wix

我正在尝试为IIS设置添加对话框。我想要一个带有身份的ComboBox,以便用户可以选择默认身份或输入他们自己的服务帐户设置。

<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
    <Fragment>
    <UI>
      <Dialog Id="IISDialog" Width="370" Height="270">
        <Control Type="Edit" Id="IISDomain" Width="329" Height="15" X="22" Y="135" Property="WEB_APP_POOL_IDENTITY_DOMAIN"/>
        <Control Type="Text" Id="IISDomainLabel" Width="152" Height="10" X="22" Y="120">
          <Text>Account Domain:</Text>
        </Control>
        <Control Type="GroupBox" Id="CustomCredentials" Width="352" Height="128" X="10" Y="102">
          <Text>Custom Credentials</Text>
        </Control>
        <Control Type="Edit" Id="IISUser" Width="329" Height="15" X="22" Y="169" Property="WEB_APP_POOL_IDENTITY_USER">
          <Condition Action="enable">
            <![CDATA[IsUseCustomAccount]]>
          </Condition>
          <Condition Action="disable">
            <![CDATA[IsUseCustomAccount]]>
          </Condition>
        </Control>
        <Control Type="Text" Id="IISUserLabel" Width="323" Height="13" X="22" Y="154">
          <Text>User:</Text>
        </Control>
        <Control Type="MaskedEdit" Id="IISPWD" Width="328" Height="15" X="22" Y="206" Property="WEB_APP_POOL_IDENTITY_PASSWORD">
        </Control>
        <Control Type="Text" Id="IISPWDLabel" Width="50" Height="10" X="22" Y="191">
          <Text>Password:</Text>
        </Control>
        <Control Type="ComboBox" Property="DefaultAccount_Prop" Id="DefaultAccount" Width="104" Height="16" X="11" Y="49">
          <Condition Action="enable">
            <![CDATA[IsUseCustomAccount]]>
          </Condition>
          <Condition Action="disable">
            <![CDATA[IsUseCustomAccount]]>
          </Condition>
          <ComboBox Property="DefaultAccount_Prop">
            <ListItem Text="1" Value="1"/>
            <ListItem Text="2" Value="2"/>
          </ComboBox>
        </Control>
        <Control Type="CheckBox" Id="IsCustomAccount" Width="346" Height="17" X="11" Y="75" Property="IsUseCustomAccount" CheckBoxValue="1">
          <Text>Use Custom Account</Text>
        </Control>
        <Control Type="Text" Id="DefaultAccLabel" Width="105" Height="12" X="11" Y="30">
          <Text>System accounts:</Text>
        </Control>
        <Control Type="PushButton" Id="OK" Width="56" Height="17" X="304" Y="244">
          <Text>Next</Text>
        </Control>
        <Control Type="PushButton" Id="Back" Width="56" Height="17" X="244" Y="244">
          <Text>Back</Text>
        </Control>
      </Dialog>
    </UI>
    </Fragment>
</Wix>

但是当我尝试编译时,我收到以下错误:

  

错误CNDL0107:架构验证失败,出现以下错误:   第1行,第2731行:命名空间中的“控件”元素   “http://schemas.microsoft.com/wix/2006/wi”包含无效的子元素   命名空间“http://schemas.microsoft.com/wix / 2006 / wi”中的“ComboBox”。   预期可能元素列表:'条件发布订阅'。 []

知道为什么会这样吗?顺便说一句,当我试图从Intellisense得到建议时,它也不会识别组合框元素。使用的WiX版本是3.9

1 个答案:

答案 0 :(得分:1)

将ComboBox移动到Condition元素之前。模式定义了一个顺序,以支持任意数量的Condition,Publish和Subscribe子级。它可能应该是一个WiX错误 - 请随意在http://wixtoolset.org/issues/提交一个。