最近プロジェクトを開発するとき、NDoc を使用してクラス ライブラリのヘルプ ドキュメントを生成することを計画しました。 Percyboy の中国語バージョン 1.3 をダウンロードしました。ドキュメントには .net2.0 をサポートしていると記載されていましたが、それを使用していると、ソリューションから新しい NDoc プロジェクトを作成するために NDoc を適用するときに例外が発生し、ヘルプ ドキュメントを使用できないことがわかりました。無事に生成される。
NDoc を使用してヘルプ ファイルを生成する場合は、ソース プログラムをダウンロードし、vs.net2005 変換を使用して ndoc ソリューションを開き、バグを修正し、デバッグを渡します。 vs.net によって生成されたアセンブリは、それに応じて処理できます。
1. ソリューション内のプロジェクトが中国語名のディレクトリにある場合、スローされた例外は処理できません。その理由は、ndoc がソリューション ファイルを解析するときに、UTF エンコーディングを使用してソリューション ファイルを開くため、中国語の文字が正しく処理されないためです。解決策: gui プロジェクトの下のソリューション ファイルを開き、読み取りメソッドを見つけて、(reader=new StreamReader(path)) を使用してファイルを開きます (reader=new StreamReader(path,System.Text.Encoding.GetEncoding(0)) )))交換する。 StreamReader の具体的な使用方法については、msdn を参照してください。
2. プロジェクト ファイルを解析する場合、vs.net2005 によって生成されるプロジェクト ファイルは基本的に xml ファイルですが、一部のプロジェクト ファイルには タグが含まれており、一部のプロジェクト ファイルには含まれていません。理由は不明ですが、具体的な理由を分析する時間がありません。知っている人がいたら教えてください。このため、プロジェクト ファイルをケースバイケースで処理する必要があります。ndoc の当初のアイデアを分析したところ、おそらく 2005 年より前のバージョンでは 2 つのプロジェクト ファイルの形式が異なっていたため、ndoc がそれを処理したのでしょう。プロジェクト ファイルを解析するときはケースバイケースで行ってください。ただし、vs.net2005 で生成されるプロジェクト ファイルには違いがありますが、形式は同じであるため、状況に応じて処理する必要はありません。解決策: gui プロジェクトの下のプロジェクト ファイルを開き、GetConfiguratin(string configName) を見つけて、次のコードを変更します。
if (_ProjectDocument.FirstChild.Name == "プロジェクト")
{
ノード = _ProjectNavigator.Select(string.Format("VS2005:Project/VS2005:PropertyGroup[@Condition=" '$(構成)|$(プラットフォーム)' == '{0}|AnyCPU' "]", configName )、_ProjectNamespaceManager);
}
それ以外
{
ノード = _ProjectNavigator.Select(String.Format("/VisualStudioProject/CSHARP/Build/Settings/Config[@Name='{0}']", configName));
}
次のように置き換えます。
ノード = _ProjectNavigator.Select(string.Format("VS2005:Project/VS2005:PropertyGroup[@Condition=" '$(構成)|$(プラットフォーム)' == '{0}|AnyCPU' "]", configName ), _ProjectNamespaceManager);
上記の処理を行ってコンパイルを通過した後、ndoc の関数を使用して .net ソリューションから新しい ndoc プロジェクトを作成することは正常に処理できますが、この処理が環境に悪影響を与えるかどうかはわかりません。影響はありますが、2005 年の開始時期は短くなく、ほとんどのプロジェクトは 2005 に移行されているはずなので、影響は大きくありません。
http://www.cnblogs.com/yxy21969/archive/2006/11/28/575257.html