前言:

很久前,我发过两篇文章,分别介绍自定义代码版和可视化调试:

1:Visual Studio 小技巧:自定义代码片断

2:自定义可视化调试工具(Microsoft.VisualStudio.DebuggerVisualizers)

具体可以用两张图来表示:

1:自定义代码片断:

2:可视化调试工具:

问题来源:

某次,我发现自己的可视化调试的类库有点旧,想更新一下,却发现:

电脑上安装了VS2005、VS2008、Vs2012几个版本的VS,要到处打开路径,复制,粘贴,很烦。

复制完还得测试,修改代码,重新编绎,又要重复上面的事情,更烦。

一想到自己更新得这么烦,还是花点时间写个程序简化这些操作吧!

解决思路:

写个程序,双击一下,自动处理,简化操作。

程序代码:

一开始还打算扫注册表去寻找路径,后来发现大伙安装VS还是中规中举的,所以用了更简单的方法:

 1    static void Main(string[] args)
 2         {
 3             try
 4             {
 5                 string runPath = AppDomain.CurrentDomain.BaseDirectory;
 6                 List<string> cd = new List<string>();
 7                 cd.Add("C:\\Program Files");
 8                 cd.Add("D:\\Program Files");
 9                 cd.Add("E:\\Program Files");
10                 cd.Add("F:\\Program Files");
11                 cd.Add("G:\\Program Files");
12                 cd.Add("H:\\Program Files");
13 
14                 cd.Add("C:\\Program Files (x86)");
15                 cd.Add("D:\\Program Files (x86)");
16                 cd.Add("E:\\Program Files (x86)");
17                 cd.Add("F:\\Program Files (x86)");
18                 cd.Add("G:\\Program Files (x86)");
19                 cd.Add("H:\\Program Files (x86)");
20                 Dictionary<string, string> dic = new Dictionary<string, string>();
21                 dic.Add("2005", "\\Microsoft Visual Studio 8");
22                 dic.Add("2008", "\\Microsoft Visual Studio 9");
23                 dic.Add("2010", "\\Microsoft Visual Studio 10.0");
24                 dic.Add("2012", "\\Microsoft Visual Studio 11.0");
25                 dic.Add("2013", "\\Microsoft Visual Studio 12.0");
26                 dic.Add("2015", "\\Microsoft Visual Studio 14");
27                 //读取VS安装路径
28                 string vPath = "\\Common7\\Packages\\Debugger\\Visualizers";
29                 string mPath = "\\VC#\\Snippets\\2052\\Visual C#";
30                 foreach (string item in cd)
31                 {
32                     foreach (KeyValuePair<string, string> kv in dic)
33                     {
34                         string vFolder = item + kv.Value + vPath;
35                         if (Directory.Exists(vFolder))
36                         {
37                             string dll = runPath + kv.Key + "\\CYQ.Visualizer.dll";
38                             if (File.Exists(dll))
39                             {
40                                 File.Copy(dll, vFolder + "\\CYQ.Visualizer.dll", true);
41                                 Console.WriteLine("To:" + vFolder + "\\CYQ.Visualizer.dll");
42                             }
43                         }
44                         string mFoler = item + kv.Value + mPath;
45                         if (Directory.Exists(mFoler) && Directory.Exists(runPath + "\\snippet"))
46                         {
47                             string[] files = Directory.GetFiles(runPath + "\\snippet", "*.snippet");
48                             foreach (string file in files)
49                             {
50                                 File.Copy(file, mFoler + "\\" + Path.GetFileName(file), true);
51                                 Console.WriteLine("To:" + mFoler + "\\" + Path.GetFileName(file));
52                             }
53                         }
54                     }
55                 }
56                 Console.WriteLine("Completed!");
57             }
58             catch (Exception err)
59             {
60                 Console.WriteLine(err.Message);
61             }
62             Console.Read();
63         }
View Code

 

源码下载:

SVN地址获取:http://code.taobao.org/svn/cyqopen/trunk/CYQ.Visualizer/

对于可视化,帮你们准备好了各个版本的:Microsoft.VisualStudio.DebuggerVisualizers.dll

拿去,不用谢:

效果展示:

运行后:

接着在VS里就可以愉快的看到效果了:

1:自定义代码断:

2:可视化

 

总结:

终于你就可以在各个VS环境里享瘦:一次编写,到处运行的体验了!

posted on 2016-11-01 15:55  路过秋天  阅读(4765)  评论(4编辑  收藏  举报
路过秋天