惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
U
Unit 42
Google DeepMind News
Google DeepMind News
博客园 - 司徒正美
Y
Y Combinator Blog
F
Fortinet All Blogs
云风的 BLOG
云风的 BLOG
T
Tailwind CSS Blog
G
Google Developers Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
罗磊的独立博客
D
DataBreaches.Net
T
The Blog of Author Tim Ferriss
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
MyScale Blog
MyScale Blog
N
Netflix TechBlog - Medium
Microsoft Security Blog
Microsoft Security Blog
GbyAI
GbyAI
P
Proofpoint News Feed
Jina AI
Jina AI
B
Blog RSS Feed
腾讯CDC
阮一峰的网络日志
阮一峰的网络日志
D
Docker

博客园 - 漂泊者

开源客户关系管理系统SplendidCRM下的二次开发 SplendidCRM的个性化配置 开源CRM软件SplendidCrm的中文语言包 开源CRM的选择 开发模式的思考 双击打不开程序而是打开属性的解决方法 关闭移动硬盘或光盘的自动扫描 查询条件组件 日程排序 内嵌的主表明细显示 编译错误BC30318的解决方法 调试dnn4.0时出现的问题及解决办法 《Visual Studio.NET Tips and Tricks》一书翻译下载 《Visual Studio.NET Tips and Tricks》第五章的翻译 《Visual Studio.NET Tips and Tricks》第四章的翻译 《Visual Studio.NET Tips and Tricks》第三章的翻译 《Visual Studio.NET Tips and Tricks》第二章的翻译 《Visual Studio.NET Tips and Tricks》第一章的翻译 《Visual Studio.NET Tips and Tricks》目录
对NDoc支持.net2.0的异常分析及解决
漂泊者 · 2006-11-28 · via 博客园 - 漂泊者

        最近在开发项目时,准备用NDoc来产生类库的帮助文档。下载了破宝(percyboy)汉化的1.3版本,看文档说是支持.net2.0,但在使用时,发现应用NDoc来从解决方案新建NDoc项目时出现异常,不能成功地生成帮助文档。
        下载源程序,用vs.net2005转换打开ndoc的解决方案进行调试,修改bug,调试通过,特记录相关的bug及解决方法如下,如想用NDoc来产生vs.net生成的程序集的帮助文件时,可照此处理。
         1、如果解决方案中的项目处于一个中文名字的目录中时,不能处理抛出异常。原因在于ndoc在解析解决方案文件时,使用的utf编码来打开解决方案文件,导致中文不能正确处理。解决方法:打开gui项目下的solution文件,定位到read方法,将打开文件的代码using (reader=new StreamReader(path))用using(reader=new StreamReader(path,System.Text.Encoding.GetEncoding(0)))代替。StreamReader的具体使用方法可以参考msdn。
         2、解析项目文件时,由vs.net2005生成的项目文件本质上是xml文件,但有的是<?xml version="1.0" encoding="utf-8"?>标记,有的项目文件没有,原因不详,也没有时间去分析具体原因,如那位知道请一定告诉我。这样导致在处理项目文件时需要分情况处理,我分析ndoc原来的思路也是这样的,可能2005以前的版本这两种项目文件的格式不一样,所以ndoc在解析项目文件时分情况进行了处理。但用vs.net2005生成的项目文件,虽然也有这样的区别,但格式是一样的,并不需要分情况处理。解决方法:打开gui项目下的project文件,定位到GetConfiguratin(string configName),将以下代码:    
        if (_ProjectDocument.FirstChild.Name == "Project")
            {
                nodes = _ProjectNavigator.Select(string.Format("VS2005:Project/VS2005:PropertyGroup[@Condition=\" '$(Configuration)|$(Platform)' == '{0}|AnyCPU' \"]", configName), _ProjectNamespaceManager);
            }
            else
            {
                nodes = _ProjectNavigator.Select(String.Format("/VisualStudioProject/CSHARP/Build/Settings/Config[@Name='{0}']", configName));
            }
     替换为:
            nodes = _ProjectNavigator.Select(string.Format("VS2005:Project/VS2005:PropertyGroup[@Condition=\" '$(Configuration)|$(Platform)' == '{0}|AnyCPU' \"]", configName), _ProjectNamespaceManager);

        作了如上处理后,编译通过后,用ndoc的从.net解决方案新建ndoc项目功能时能够正常处理,但不知这样处理后是否会对2005以前的版本产生的解决方案有不良影响,不过,2005推出时间也不短了,大部分的项目应该都迁移到2005下了,所以影响应该不大。