本项目借鉴于目参考第一篇中的文章二的代码。
该插件作用是在解决方案中快速查找指定文件名规则的文件,截图如下
由于VS的Addin项目不能像其他项目那样打开重编译就可以使用,需要做较多的修改,才能将其他人的项目拿到自己的机器上使用,此教程详细介绍如何使用别人的Addin项目。
为方便下载,我将代码存放到CSDN中,可以在该连接http://download.csdn.net/download/ranky2009/8070471中下载。
其中SlnFileFind_src.zip为原始版本,SlnFileFind_src_version2.zip为我进行下面修改后的版本。
注意:如果你要在本机上部署该项目,需按照如下操作做同样的修改。
可自行用对比软件查看修改了哪些参数。
打开SlnFileFind_src.zip中的项目,在VS2012中,会提示如下更新对话框,这是由于该项目是基于VS2005做的。
确认,转换为VS2012版本后,点击F5调试,会弹出如下提示
2.1需要指定调试目标。
右键项目属性。
应用程序页面,目标框架选择.NET Framework 4.5
调试页面,修改 启动外部程序,命令行参数,工作目录 等参数值。
启动外部程序:对应你VS的devenv.exe全路径,开始菜单,右键VS,属性目标值
(我机器上为D:\Program Files\Microsoft Visual Studio 11.0\Common7\IDE\devenv.exe)
命名行参数:为/reset 项目名称.Connet
我的机器为/resetaddin SlnFileFindAddIn.Connect
工作目录:为devenv.exe所在目录。启用外部程序值去掉\devenv.exe
(我的机器为D:\Program Files\Microsoft Visual Studio 11.0\Common7\IDE)
2.2拷贝For Testing.AddIn文件
发现SlnFileFind – For Testing.AddIn 图标上有个感叹号。表示无法找到该文件。
将SlnFileFind.AddIn 拷贝到我的文档\Visual Studio 2012\Addins)。
(我的机器改目录为C:\Users\Ranky\Documents\Visual Studio 2012\Addins)
并重命名为SlnFileFind - For Testing.AddIn
打开项目所在目录,选择文件SlnFileFind.csproj,用文本方式打开。找到
<Content Include="$(HOMEPATH)\MyDocuments\Visual Studio 2008\Addins\SlnFileFind - For Testing.AddIn">
将include中的值改为SlnFileFind – For Testing.AddIn所在位置全路径。记住保存。
(我的机器为
C:\Users\Ranky\Documents\Visual Studio2012\Addins\SlnFileFind - For Testing.AddIn)
重新打开该项目。发现没有感叹号了,此步骤很重要。
在VS中双击SlnFileFind - For Testing.AddIn(注意是SlnFileFind -For Test.Addin 而不是SlnFileFind.Addin),修改其Assembly属性
<Assembly>SlnFileFind.dll</Assembly>
改为SlnFileFind.dll实际所在路径全名。我们知道生成的DLL在当前项目中的bin目录中,找到,并获取其全路径。
我机器为D:\My Project\SlnFileFind_src\SlnFileFind\bin\SlnFileFind.dll
修改并保存。
F5调试,可以进入调试状态。但依旧提示
此时要调试进入程序找错误,发现无法找到Tool的中文对应名称
ToolsMenuName的值为空值。原因是没有和zhTools对应的键值。
双击项目文件CommandBar.resx
加入
继续调试,发现command.Bindings="Global::Ctrl+Alt+Y";会引起exception
注释该行代码,调试通过,无错误。
但是工具中依旧没有Find File in Solution菜单
点击工具->外接连接程序
将其设置为启动。
再打开工具栏,发现菜单按钮
打开一个工程后,再次点击该按钮,弹出功能对话框,输入字符,可进行搜索