今天在调试在线脚本的时候,发现了Visual Studio 2005正式版的一个bug。虽然说这只是个小bug,但是由于没有找到替代的解决方法,所以还是让人很是郁闷的说。并且和同事讨论猜测了一下这个bug的可能成因。
这个bug只在VS 2005里面有,因为VS.NET 2003没有这个功能。对于VS.NET 2003的多文档窗口容器的Tab管理,我们肯定都有不少的抱怨。那种滑动Tab标签的设计看起来嘿么嘿么的酷,可是真的文档打开多了后,整个Tab条变得too too too long,要找某一个Tab出来,那个费劲啊!VS 2005把这里设计成非滑动的Tab标签管理条了,那么Tab多了怎么办呢?多了么就用一个下拉菜单来显示,虽然不酷了,但是比VS.NET 2003方便太多了,并且Ctrl+Tab也会唤出一个可自由选择的窗口。同时VS 2005在每个Tab标签的Context Menu上又新加了几个条目,其中的"Close All But This"和"Copy Full Path"是我觉得非常有用的功能 。结果没想到bug还就这么来了,如下图:
当我们开打的文档是本地硬盘上的文档的时候,上图的这个"Copy Full Path"功能非常的好用,也没有什么问题,再说了这么简单的东西不是。可是当我们打开的文档,是通过debugger开启的远程在线文档时,这个"Copy Full Path"功能的结果居然变得莫名其妙,上图示例中文档地址明明是google上的一个脚本文件,结果通过那个Copy功能得到的却是: ^TransientScriptDocument11.js,晕啊,我要这么个Path来干什么呢 ?! 这很显然是一个bug啦。
虽然说是个小bug,可是目前没有任何替代的方法,再让我把那个 http://www.google.com/xxx的地址Copy出来了,所以还是相当的郁闷,那个什么"Scirpt Explorer窗口"里的条目也没有右件菜单 。
猜测这个bug可能是这样产生的,对于设计editor的团队,设计好的editor控件有FileName、FullPath、Caption等等的属性,当文档装载时各自保存各自的值,毫无问题,Copy也简单得要命,复制一下FullPath这个属性就行了。可是当文档从网上载入VS 2005后,FileName和Caption等属性还是该干嘛干嘛。可这个FullPath属性嘛,就被赋值为了一个临时文件名"^Transient FileTypeN.*",同时文档存在于内存中,本身也就没有什么实际的FullPath了。而这时谁也没有想到,"Copy Full Path"不该再Copy FullPath属性,而应该Copy Caption属性了!
这个bug只在VS 2005里面有,因为VS.NET 2003没有这个功能。对于VS.NET 2003的多文档窗口容器的Tab管理,我们肯定都有不少的抱怨。那种滑动Tab标签的设计看起来嘿么嘿么的酷,可是真的文档打开多了后,整个Tab条变得too too too long,要找某一个Tab出来,那个费劲啊!VS 2005把这里设计成非滑动的Tab标签管理条了,那么Tab多了怎么办呢?多了么就用一个下拉菜单来显示,虽然不酷了,但是比VS.NET 2003方便太多了,并且Ctrl+Tab也会唤出一个可自由选择的窗口。同时VS 2005在每个Tab标签的Context Menu上又新加了几个条目,其中的"Close All But This"和"Copy Full Path"是我觉得非常有用的功能 。结果没想到bug还就这么来了,如下图:
当我们开打的文档是本地硬盘上的文档的时候,上图的这个"Copy Full Path"功能非常的好用,也没有什么问题,再说了这么简单的东西不是。可是当我们打开的文档,是通过debugger开启的远程在线文档时,这个"Copy Full Path"功能的结果居然变得莫名其妙,上图示例中文档地址明明是google上的一个脚本文件,结果通过那个Copy功能得到的却是: ^TransientScriptDocument11.js,晕啊,我要这么个Path来干什么呢 ?! 这很显然是一个bug啦。
虽然说是个小bug,可是目前没有任何替代的方法,再让我把那个 http://www.google.com/xxx的地址Copy出来了,所以还是相当的郁闷,那个什么"Scirpt Explorer窗口"里的条目也没有右件菜单 。
猜测这个bug可能是这样产生的,对于设计editor的团队,设计好的editor控件有FileName、FullPath、Caption等等的属性,当文档装载时各自保存各自的值,毫无问题,Copy也简单得要命,复制一下FullPath这个属性就行了。可是当文档从网上载入VS 2005后,FileName和Caption等属性还是该干嘛干嘛。可这个FullPath属性嘛,就被赋值为了一个临时文件名"^Transient FileTypeN.*",同时文档存在于内存中,本身也就没有什么实际的FullPath了。而这时谁也没有想到,"Copy Full Path"不该再Copy FullPath属性,而应该Copy Caption属性了!
本文转自博客园鸟食轩的博客,原文链接:http://www.cnblogs.com/birdshome/,如需转载请自行联系原博主。