Visual Studio扩展开发
前言
随着安装程序的日渐增大、版本的不断增多,调试程序需要以安装目录为底,把生成带调试信息的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插件的一般过程.
创建一个启动命令--------执行命令----------
本文接口仅涉及到获取解决方案路径办法.想了解其他接口,可查阅后续文章.
本文介绍了如何利用Visual Studio 2019和相关SDK开发VS插件,实现通过快捷键调出对话框,保存解决方案路径到TXT文件的功能。详细步骤包括创建VSIX项目、定制命令、设计对话框及执行命令过程,旨在提升研发效率。

1909

被折叠的 条评论
为什么被折叠?



