市场导向,技术为本

尘土十分归举子,乾坤大半属偷儿
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

VS2010 Extensions PathTooLongException彻底解决方法

Posted on 2013-09-23 12:12  上海•鹰  阅读(1711)  评论(0编辑  收藏  举报

VS2010有很多好用的第三方扩展,可以通过扩展管理器安装。但是安装时有时会遇到PathTooLongException,无法安装成功。

问题分析:

通过分析安装日志,发现引起PathTooLongException的原因主要是VS2010缺省把第三方扩展安装在Application Data目录下,系统宏为$AppDataLocalFolder$,一般是在如下路径:C:\Documents and Settings\Administrator\Local Settings\Application Data\Microsoft\VisualStudio\10.0,再加上扩展路径“\Extensions”和扩展本身的目录路径,超出了完整目录长度255的限制,只要替换掉这个路径就应该可以解决。

解决方案 (必须使用管理员权限)

1. 在C盘根目录下建立新文件夹:VS2010Extensions,完整路径为C:\VS2010Extensions

2. VS2010第三方扩展安装路径定义修改:

打开文件devenv.pkgdef,一般在<VS2010安装路径>\Common7\IDE\下,

比如,我的环境就是在C:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE\devenv.pkgdef

找到行 "UserExtensionsRootFolder" = "$AppDataLocalFolder$\Extensions",把$AppDataLocalFolder$\Extensions替换成新建的Extensions目录C:\VS2010Extensions,两边的引号保留。

Add:

把"UserExtensionsRootFolder" = "C:\VS2010Extensions"移动到行"PkgDefSearchPath"上面,在"PkgDefSearchPath"对应的字串中添加";$UserExtensionsRootFolder$", 注意有分号分隔。

保存文件devenv.pkgdef。

3. (可选) 打开注册表:regedit, 找到HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\10.0\ExtensionManager\EnabledExtensions,安装过的扩展注册项都在这里。

逐个替换路径中的Extensions之前的部分(包括Extensions)为新建的Extensions目录C:\VS2010Extensions。

4. 复制已安装的扩展文件:

把C:\Documents and Settings\Administrator\Local Settings\Application Data\Microsoft\VisualStudio\10.0\Extensions中的目录复制(或剪贴)到C:\VS2010Extensions下。

5. 重启VS2010, 扩展管理器中启用已安装的扩展, OK

6. 以后再安装新的扩展是,系统自动安装到新建的Extensions目录C:\VS2010Extensions中。

至此,完美解决烦人的PathTooLongException问题。

 

没找到VS2010中哪里定制这个路径,如哪位看客知道,请留言, 不胜感激, 再补充进来。

 

写完上面的文字才发现下面的东东:

1. 还有一个工具:ExtensionSync 

2. MSDN上给出详细解决方案:

How VSIX extensions are discovered and loaded in VS 2010