Visual Studio Extensions的文档说,我可以对vsct
文件中的元素应用条件。
我一直在尝试为VS2019和其他菜单构建不同的菜单。我创建了一个条件编译符号,该符号为Visual Studio 2019+定义了VS2019
。
<Menu guid="GuidMenuSet" id="GroupIDMenuBaseGroup" priority="0x0100" type="Menu"
Condition="Defined(VS2019)">
<Parent guid="guidSHLMainMenu" id="IDG_VS_MM_TOOLSADDINS"/>
<Strings>
<ButtonText>My Text</ButtonText>
<CommandName>MyText</CommandName>
</Strings>
</Menu>
<Menu guid="GuidMenuSet" id="GroupIDMenuBaseGroup"
priority="0x0100" type="Menu"
Condition="!Defined(VS2019)">
<Parent guid="guidSHLMainMenu" id="IDM_VS_MENU_TOOLS"/>
<Strings>
<ButtonText>My Text</ButtonText>
<CommandName>MyText</CommandName>
</Strings>
</Menu>
该菜单未同时在VS2017和VS2019上出现。
答案 0 :(得分:1)
.VSCT文件被编译为binary command table output (.cto) resource,然后作为资源嵌入到您的程序包程序集中。 .cto资源在构建时进行编译,并且在构建.cto资源时评估条件。
由于在构建程序包时定义了菜单组,因此菜单组看起来将基于构建它的VS版本作为父级。
此致