写了N年的代码,回头过来看,其中有80%代码都是重复的代码,深入研究VS插件开发,应用到工作中,让自己减少基础的代码开发,增加开发效率
1、新增解决方案: Extensiblity->VSIX Project
2、新增项目:Custom Command
3、Command1Package.vsct 参数介绍
guidSHLMainMenu 是vs界面。
IDM_VS_CTXT_SOLNNODE 是指的解决方案资源管理器里的 解决方案,
IDM_VS_CTXT_SOLNFOLDER 是指的解决方案资源管理器里的 解决方案里的文件夹,不是项目里的哈,这个文件夹是虚拟的,没有实际的文件夹映射,
IDM_VS_CTXT_PROJNODE 是指的解决方案资源管理器里的 项目,
IDM_VS_CTXT_FOLDERNODE 是指的解决方案资源管理器里的 项目里的文件夹,
IDM_VS_CTXT_ITEMNODE 是指的解决方案资源管理器里的 项目里的项(文件右键),就例如cs、js文件
4、给Command命名名称
<Button guid="guidCommand1PackageCmdSet" id="Command1Id" priority="0x0100" type="Button">
<Parent guid="guidCommand1PackageCmdSet" id="MyMenuGroup" />
<Icon guid="guidImages" id="bmpPic1" />
<Strings>
<ButtonText>生成实体类</ButtonText>
</Strings>
</Button>
5、扩展代码开发(写入)
private void MenuItemCallback(object sender, EventArgs e)
{
}
6、获取项目文件
1、引用 using EnvDTE;
2、获取项目文件地址
var dte = ServiceProvider.GetService(typeof(DTE)) as DTE;
var file = dte.FileName;
var doc = dte.ActiveDocument;
var item = doc.ProjectItem;
var filename = item.FileNames[0];
7、下一步获取数据库里面的表名,字段属性生成拼成CS代码