Lors du développement récent d'un projet, j'avais prévu d'utiliser NDoc pour générer une documentation d'aide pour la bibliothèque de classes. J'ai téléchargé la version chinoise 1.3 de Percyboy. La documentation indique qu'elle prend en charge .net2.0. Cependant, lors de son utilisation, j'ai constaté qu'une exception s'était produite lors de l'application de NDoc pour créer un nouveau projet NDoc à partir de la solution, et le document d'aide n'a pas pu. être généré avec succès.
Téléchargez le programme source, utilisez la conversion vs.net2005 pour ouvrir la solution ndoc pour le débogage, modifiez le bogue et réussissez le débogage. Les bogues et solutions pertinents sont enregistrés comme suit si vous souhaitez utiliser NDoc pour générer le fichier d'aide du. L'assembly généré par vs.net peut être géré en conséquence.
1. Si le projet dans la solution se trouve dans un répertoire portant un nom chinois, l'exception levée ne peut pas être gérée. La raison en est que lorsque ndoc analyse le fichier de solution, il utilise le codage UTF pour ouvrir le fichier de solution, ce qui entraîne un traitement incorrect des caractères chinois. Solution : ouvrez le fichier de solution sous le projet gui, localisez la méthode de lecture et utilisez (reader=new StreamReader(path)) pour ouvrir le fichier en utilisant (reader=new StreamReader(path,System.Text.Encoding.GetEncoding(0) )))remplacer. Pour une utilisation spécifique de StreamReader, veuillez vous référer à msdn.
2. Lors de l'analyse des fichiers de projet, les fichiers de projet générés par vs.net2005 sont essentiellement des fichiers XML, mais certains ont des balises <?xml version="1.0" encoding="utf-8"?>, et certains fichiers de projet n'en ont pas, par exemple. raisons inconnues. , et je n’ai pas le temps d’analyser les raisons spécifiques. Si quelqu’un le sait, dites-le-moi. Cela conduit à la nécessité de traiter les fichiers de projet au cas par cas. J'ai analysé l'idée originale de ndoc et c'est également le cas. Peut-être que les formats des deux fichiers de projet dans les versions antérieures à 2005 étaient différents, donc ndoc l'a traité. au cas par cas lors de l'analyse des fichiers du projet. Cependant, bien qu'il existe des différences dans les fichiers de projet générés avec vs.net2005, le format est le même et n'a pas besoin d'être traité au cas par cas. Solution : ouvrez le fichier projet sous le projet gui, localisez GetConfiguratin (string configName) et modifiez le code suivant :
if (_ProjectDocument.FirstChild.Name == "Projet")
{
nodes = _ProjectNavigator.Select(string.Format("VS2005:Project/VS2005:PropertyGroup[@Condition=" '$(Configuration)|$(Platform)' == '{0}|AnyCPU' "]", configName ), _ProjectNamespaceManager);
}
autre
{
nodes = _ProjectNavigator.Select(String.Format("/VisualStudioProject/CSHARP/Build/Settings/Config[@Name='{0}']", configName));
}
Remplacer par :
nodes = _ProjectNavigator.Select(string.Format("VS2005:Project/VS2005:PropertyGroup[@Condition=" '$(Configuration)|$(Platform)' == '{0}|AnyCPU' "]", configName ), _ProjectNamespaceManager);
Après avoir effectué le traitement ci-dessus et réussi la compilation, l'utilisation de la fonction ndoc pour créer un nouveau projet ndoc à partir d'une solution .net peut être traitée normalement, mais je ne sais pas si ce traitement aura des effets négatifs sur le solutions générées par les versions antérieures à 2005. Impact, cependant, le délai de lancement de 2005 n'est pas court et la plupart des projets auraient dû être migrés vers 2005, donc l'impact ne devrait pas être significatif.
http://www.cnblogs.com/yxy21969/archive/2006/11/28/575257.html