关于VS2005中的Code Snippets Manager的问题及解决
来源:互联网 发布:俄罗斯电视台直播软件 编辑:程序博客网 时间:2024/06/06 01:05
然而,使用它并没有预想中的那么顺利,特别是在做过多次目录添加和删除之后,可能出现添加在列表中的目录无法在智能感知列表中显示出来的情况;甚至会出现列表当中明明没有这个目录,却也添加不进去的情况,它总是认为这个目录已经在列表中存在。为了解决这个问题,我对它的存储方式作了一些研究,并跟踪了相关的注册表和文件变化,下面是我的研究结果。
Code Snippets Manager主要在三个地方保存信息:
1. HKEY_CURRENT_USER/Software/Microsoft/VisualStudio/8.0/OpenFind/Microsoft Visual Studio/Settings/Code Snippets Directory/File NameMRU/Value
这是一个REG_MULTI_SZ类型的值,可以用来存储多个字符串,可以看作是一个字符串数组,这里用来存储路径,用回车作为分隔符,在我的机器上,它的值是这样的。
C:/Documents and Settings/tonyqus/My Documents/MSDN/Visual C# 2005 Code Snippets/filesystem
C:/Documents and Settings/tonyqus/My Documents/MSDN/Visual C# 2005 Code Snippets/datatypes
C:/Documents and Settings/tonyqus/My Documents/MSDN/Visual C# 2005 Code Snippets/database
C:/Documents and Settings/tonyqus/My Documents/code1
C:/Documents and Settings/tonyqus/My Documents/MSDN/Visual C# 2005 Code Snippets/
C:/Program Files/Microsoft Visual Studio 8/VC#/Snippets/1033/Refactoring
C:/Documents and Settings/tonyqus/My Documents/MSDN/Visual C# 2005 Code Snippets/application
2. HKEY_CURRENT_USER/Software/Microsoft/VisualStudio/8.0/Languages/CodeExpansions/VisualC#/Path
这是一个REG_SZ类型的值,可以用来存储字符串,这里用来存储路径,用分号分割,在我的机器上,它的值如下:
%InstallRoot%/VC#/Snippets/%LCID%/Visual C#/;%MyDocs%/Code Snippets/Visual C#/My Code Snippets/;%InstallRoot%/VC#/Snippets/%LCID%/OfficeDevelopment/;%InstallRoot%/VC#/Snippets/%LCID%/Refactoring/;C:/Documents and Settings/tonyqus/My Documents/code1/;C:/Program Files/Microsoft Visual Studio 8/VC#/Snippets/1033/Workflow/;C:/Documents and Settings/tonyqus/My Documents/MSDN/Visual C# 2005 Code Snippets/datatypes/
3. C:/Documents and Settings/<YourAccount Name>/Local Settings/ApplicationData/Microsoft/VisualStudio/8.0/1033/ExpansionsXML.xml
这是一个xml文件,结构比较复杂,我们可以看到在上面的两个设置中,仅存储目录,而在这个文件中既保存目录又保存目录中的.snippet文件的完整路径,这可能是为了提供.snippet文件的import功能而特地设计的。这里就不做展开了,大家有兴趣的话,可以研究一下它的结构。来说说可能出现的问题:
问题 1
在HKEY_CURRENT_USER/Software/Microsoft/VisualStudio/8.0/Languages/CodeExpansions/VisualC#/Path 中存储着两个完全相同的路径,如
C:/Documents and Settings/tonyqus/My Documents/MSDN/Visual C# 2005 Code Snippets/database
C:/Documents and Settings/tonyqus/My Documents/MSDN/Visual C# 2005 Code Snippets/database/
我们可以看到这两个路径唯一的差别就是一个'/',但似乎Code Snippets Manager不会对这样的情况进行处理,它会认为这是两个完全不同的路径,所以如果出现这种情况,建议删掉其中一个。
问题 2
在注册表的两个值中目录明明存在,但却无法在智能感知时列出该目录,这可能是由于ExpansionsXML.xml没有改目录的相关信息所致,建议删除或者重命名ExpansionsXML.xml,然后重新启动VS2005,并打开Code Snippets Manager,你会发现一个Code Snippets Manager会根据注册表中的路径新建一个新的ExpansionsXML.xml文件。
问题 3
智能感知可以列出的目录,在Code Snippets Manager的列表中根本没有,但每次试图添加目录时,会报目录已存在的错误。遇到这种情况,恐怕要对这三个存储位置都要做处理,首先要确保注册表中确实把这个目录删除了,还有就是重建ExpansionXML.xml文件。
- 关于VS2005中的Code Snippets Manager的问题及解决
- 关于VS2005中的Code Snippets Manager的问题及解决
- 关于VS2005中的Code Snippets Manager的问题及解决
- VS2010 Code Snippets Manager
- 利用VS2005中的Code Snippets提高开发效率
- 利用VS2005中的Code Snippets提高开发效率
- Code Snippets的备份
- Code Snippets的使用
- VS2005中用Code Snippets提高开发效率
- VS2005中用Code Snippets提高开发效率
- VS.NET 代码块管理 Code Snippets Manager
- 解决ADT及SDK Manager 下载失败的问题
- code snippets
- Code Snippets
- Code Snippets
- code snippets
- VS2005的程序文件分发问题及解决
- VS2005的程序文件分发问题及解决
- 模板引擎SMARTY(zz)
- linux中的启动管理编辑器
- NET(C#)连接各类数据库-集锦
- Calculator.NET 2.3发布
- Javascript:检测FlashPlayer版本的函数
- 关于VS2005中的Code Snippets Manager的问题及解决
- aspnetdb.mdf数据字典
- [翻译]脚本引擎实现 - 第四部分 符号表和文法树
- [winform入门级好书]c# Windows Forms程序设计
- NETTool
- 关于asp.net Session丢失问题的总结
- firefox下几个实用的免费开发插件
- [翻译]脚本引擎实现 - 第三部分 解析器
- 随想——程序员与测试员