解决Live Writer语法高亮插件的一个Bug

经常写博客的人或许对Live Writer非常熟悉,而经常写博客的程序员不但熟悉Live Writer,或许还在使用 @世友 同学开发的一个插入高亮代码的插件。该插件最新版本是作者于2009.12.14发布的V1.2版。此版解决了以往的一些bug,但仍然有个bug导致一个非常严重的错误,使得插件不能使用,并提示“插件初始化异常,未将对象引用设置为对象实例”。在此,本文作者给出了此问题的解决方法。

此问题的原因是,配置文件中“<Language>C++</Language>”一项保存了上次使用的语言全称FullName。而在下次启动时会用这个语言的全称去找对应的Highlighter,但在找的时候却是用Name.ToLower()去比较。对某些语言,Highlighter的FullName和Name并不相同,比如“C++”是FullName,但它的Name却是“CPP”,经过ToLower()之后变成“cpp”,故查找失败,返回null。但下面的代码没有判断就直接使用了。从而导致非法使用空对象。

我已经用v1.1的版本修改并编译,同时加入了V1.2的内容。可以在这里下载。解压后,直接把该dll文件拷贝到 Windows Live Writer的安装目录下的 Plugins 目录下覆盖原文件即可。该路径一般是:“C:\Program Files\Windows Live\Writer\Plugins”

如果不想用此版本,也可以暂时绕过此问题,就是在每次启动Writer前,把配置文件的“<Language>C++</Language>”(或其他语言)改为“<Language>cpp</Language>”,即可。

配置文件名为“profile_code.config”。V1.1版的在Writer的安装目录;V1.2版的在“我的文档”下的“Windows Live\Writer\Plugins\cf.SyntaxHighlighting”目录。

另外,该插件作者公布了该插件V1.1版的源代码,可以从这里下载。本文作者修改后的源代码(自作主张地定为V1.1.5版)可以从这里下载

如果还有问题欢迎在此留下评论与本文作者交流。
或Email我:soli{at}qq.com

原文链接: https://www.cnblogs.com/soli/archive/2011/01/28/1946582.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

    解决Live Writer语法高亮插件的一个Bug

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/20565

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月7日 下午10:08
下一篇 2023年2月7日 下午10:09

相关推荐