vsct文件在vs package中有着重关重要的作用,它是代表Visual Studio的命令表(Command Table),Visual Studio利用vsct文件的定义为我们的package的命令创建用户界面。如果你查看这个文件的属性的话,你会发现该文件的Build Action是VSCTCompile。在package编译过程中,vsct文件会被编译成二进制的资源,并以ResourceName作为资源ID添加到VSPackage.resx资源文件中。
正常情况下在创建项目过程中如果在“Select VSPackage Options”步骤时选了“Menu Command、Tool Window、Customer Editor”中的任意一项,那么项目生成时将会自动生成vsct文件。如果你创建的是一个空项目,这三项都没有选择那么又如何创建vsct文件呢?
1、在vs中创建任意名称的.vsct件。例:“vspackage.vsct”
2、打开package.cs文件,定义资源标记
[ProvideMenuResource("Menus.ctmenu", 1)] public sealed class CodeGeneratorPackage : Package
3、用记事本打开项目的.csproj文件
找到
<Content Include="vspackage.vsct" /> //不同vs版本可能会有所不同,可以直接搜索文件名
改为
<VSCTCompile Include="vspackage.vsct">
<ResourceName>Menus.ctmenu</ResourceName> //ResourceName可以随便定义,但要与package.cs文件中引用的一至
</VSCTCompile>
4、重新打开项目并编译