Visual Studio扩展开发(VS插件)

本文介绍了如何利用Visual Studio 2019和相关SDK开发VS插件,实现通过快捷键调出对话框,保存解决方案路径到TXT文件的功能。详细步骤包括创建VSIX项目、定制命令、设计对话框及执行命令过程,旨在提升研发效率。


前言

随着安装程序的日渐增大、版本的不断增多,调试程序需要以安装目录为底,把生成带调试信息的dl拷贝到调试环境,变得越来越混乱,同时研发人员对Visual Studio的个性化需求也不断增加,因此有必要开发一些VS插件(*.vsix),用于解决这些问题,以提高研发效率。


一、工具

1、VS2019

2、工具负荷两个(SDK)
a、Visual Studio 扩展开发
b、.NET桌面开发

在这里插入图片描述

二、VS插件目标功能

使用VS快捷键,直接调出一个对话框,对话框可完成保持一个路径到解决方案下的txt文件中。

二、研发步骤

1.创建VSIX Project

在这里插入图片描述

在这里插入图片描述
根据需要创建自己的项目名称、项目路径以及解决方案。
注意:此处的项目名与最后插件上的命令按钮名称无关。

2.自定义生成VSIX描述、版本、及作者

选择.Vsixmanifest清单文件,自行修改
在这里插入图片描述

3.创建第一个command命令

右键单击项目(而非解决方案)。 在上下文菜单上,选择“添加”,然后选择“新建项”
在这里插入图片描述根据图中1、2、3、4步骤自定义名称。

4.创建一个对话框类

创建对话类方式与C#桌面开发程序一样,此处不再细述。
在这里插入图片描述

4.设置命令名称

解决方案中找到.VSCT文件
在这里插入图片描述设置好后,可以直接启动调试程序,VS将会模拟启动一个VS,在工具中将可以看到自己创建的命令按钮如图

5.执行命令过程

在这里插入图片描述如果所示,调试程序过程中,将在模拟vs"工具"中看到命令按钮,执行按钮后即进入步骤3创建的.cs中,如果3处

6.设计对话框、获取解决方案路径及保存路径到解决方案下的txt中

对话框
a.启动时,解决方案中显示解决方案路径
b.点击保存,解决方案路径保存到解决方案路径下的Sln.txt中
在这里插入图片描述

获得解决方案路径

        using EnvDTE;
        using EnvDTE80;
        using Microsoft.VisualStudio.Shell;
        using System.IO;

        private string GetSlnPath()
        {
            //ThreadHelper.ThrowIfNotOnUIThread();
            var dte2 = Package.GetGlobalService(typeof(DTE)) as DTE2;
            var solution = dte2.Solution;
            var SolutionPath = Path.GetDirectoryName(solution.FullName);//解决方案路径
            return SolutionPath;
        }

在对话框中显示

        private void Form1_Load(object sender, EventArgs e)
        {
            textBox1.Text= GetSlnPath();
        }
                

点击确定保存解决方案路径到解决方案路径下的Sln.txt中

        private void button1_Click(object sender, EventArgs e)
        {
            string sSlnPath = GetSlnPath();                           //解决方案路径
            if (sSlnPath.Substring(sSlnPath.Length - 1, 1) == "\\") 
                sSlnPath.Remove(sSlnPath.Length - 1, 1);              //如果最后一位是\,则删除
            string sFileName = sSlnPath + "\\Sln.txt";                //拼出文件全路径

            StreamWriter streamWriter = new StreamWriter(sFileName, true);
            streamWriter.Write(GetSlnPath());
            streamWriter.Close();

        }

最后启动程序看执行功能查看
在这里插入图片描述


总结

本文主要讲述创建VS插件的一般过程.
创建一个启动命令--------执行命令----------
本文接口仅涉及到获取解决方案路径办法.想了解其他接口,可查阅后续文章.

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值