简短回答:确保Label
元素出现在Group
元素内的所有元素之后CustomTab
。
Office 365 最近对清单文件启用了额外的架构验证,并且由于为CustomTab
元素定义架构的方式,它预计Label
会紧随其后。
换句话说,带有此CustomTab
元素的清单将触发错误:
<CustomTab id="TabCustom1">
<Label resid="customTabLabel1"/>
<Group id="group1">
<Label resid="groupLabel1"/>
<Control xsi:type="Button" id="uilessButton1">
<Label resid="uilessButtonLabel1"/>
<Supertip>
<Title resid="uilessButtonSuperTipTitle1"/>
<Description resid="uilessButtonSuperTipDesc1"/>
</Supertip>
<Icon>
<bt:Image size="16" resid="uilessButtonIcon1-16"/>
<bt:Image size="32" resid="uilessButtonIcon1-32"/>
<bt:Image size="80" resid="uilessButtonIcon1-80"/>
</Icon>
<Action xsi:type="ExecuteFunction">
<FunctionName>buttonFunction1</FunctionName>
</Action>
</Control>
</Group>
</CustomTab>
将其更改为此将解决错误:
<CustomTab id="TabCustom1">
<Group id="group1">
<Label resid="groupLabel1"/>
<Control xsi:type="Button" id="uilessButton1">
<Label resid="uilessButtonLabel1"/>
<Supertip>
<Title resid="uilessButtonSuperTipTitle1"/>
<Description resid="uilessButtonSuperTipDesc1"/>
</Supertip>
<Icon>
<bt:Image size="16" resid="uilessButtonIcon1-16"/>
<bt:Image size="32" resid="uilessButtonIcon1-32"/>
<bt:Image size="80" resid="uilessButtonIcon1-80"/>
</Icon>
<Action xsi:type="ExecuteFunction">
<FunctionName>buttonFunction1</FunctionName>
</Action>
</Control>
</Group>
<Label resid="customTabLabel1"/>
</CustomTab>