Als ich kürzlich ein Projekt entwickelte, plante ich, NDoc zum Generieren einer Hilfedokumentation für die Klassenbibliothek zu verwenden. Ich habe die chinesische Version 1.3 von Percyboy heruntergeladen. In der Dokumentation wurde angegeben, dass sie .net2.0 unterstützt. Bei der Verwendung von NDoc zum Erstellen eines neuen NDoc-Projekts aus der Lösung ist jedoch eine Ausnahme aufgetreten erfolgreich generiert werden.
Laden Sie das Quellprogramm herunter, verwenden Sie die vs.net2005-Konvertierung, um die NDoc-Lösung zum Debuggen zu öffnen, ändern Sie den Fehler und übergeben Sie das Debugging. Wenn Sie NDoc zum Generieren der Hilfedatei verwenden möchten Die von vs.net generierte Assembly kann entsprechend behandelt werden.
1. Wenn sich das Projekt in der Lösung in einem Verzeichnis mit einem chinesischen Namen befindet, kann die ausgelöste Ausnahme nicht behandelt werden. Der Grund dafür ist, dass ndoc beim Parsen der Lösungsdatei die UTF-Codierung zum Öffnen der Lösungsdatei verwendet, was dazu führt, dass chinesische Zeichen nicht korrekt verarbeitet werden. Lösung: Öffnen Sie die Lösungsdatei unter dem GUI-Projekt, suchen Sie die Lesemethode und verwenden Sie (reader=new StreamReader(path)), um die Datei mit (reader=new StreamReader(path,System.Text.Encoding.GetEncoding(0)) zu öffnen. )))ersetzen. Informationen zur spezifischen Verwendung von StreamReader finden Sie unter msdn.
2. Beim Parsen von Projektdateien handelt es sich bei den von vs.net2005 generierten Projektdateien im Wesentlichen um XML-Dateien, einige verfügen jedoch über <? Unbekannte Gründe, und ich habe keine Zeit, die spezifischen Gründe zu analysieren. Wenn jemand es weiß, sagen Sie es mir bitte. Dies führt dazu, dass die Projektdateien von Fall zu Fall verarbeitet werden müssen, und dies ist auch der Fall. Möglicherweise waren die Formate der beiden Projektdateien in den Versionen vor 2005 unterschiedlich, sodass ndoc sie weiterverarbeitete Dies wird bei der Analyse der Projektdateien von Fall zu Fall berücksichtigt. Obwohl es Unterschiede in den mit vs.net2005 generierten Projektdateien gibt, ist das Format dasselbe und muss nicht von Fall zu Fall bearbeitet werden. Lösung: Öffnen Sie die Projektdatei unter dem GUI-Projekt, suchen Sie GetConfiguratin(string configName) und ändern Sie den folgenden Code:
if (_ProjectDocument.FirstChild.Name == "Projekt")
{
nodes = _ProjectNavigator.Select(string.Format("VS2005:Project/VS2005:PropertyGroup[@Condition=" '$(Configuration)|$(Platform)' == '{0}|AnyCPU' "]", configName ), _ProjectNamespaceManager);
}
anders
{
nodes = _ProjectNavigator.Select(String.Format("/VisualStudioProject/CSHARP/Build/Settings/Config[@Name='{0}']", configName));
}
Ersetzen durch:
nodes = _ProjectNavigator.Select(string.Format("VS2005:Project/VS2005:PropertyGroup[@Condition=" '$(Configuration)|$(Platform)' == '{0}|AnyCPU' "]", configName
)
, _ProjectNamespaceManager);
Lösungen, die von Versionen vor 2005 generiert wurden. Auswirkungen: Die Startzeit von 2005 ist jedoch nicht kurz und die meisten Projekte sollten auf 2005 migriert worden sein, sodass die Auswirkungen nicht erheblich sein dürften.
http://www.cnblogs.com/yxy21969/archive/2006/11/28/575257.html