Al desarrollar un proyecto recientemente, planeé usar NDoc para generar documentación de ayuda para la biblioteca de clases. Descargué la versión china 1.3 de Percyboy. La documentación decía que es compatible con .net2.0. Sin embargo, al usarla, descubrí que se produjo una excepción al aplicar NDoc para crear un nuevo proyecto NDoc a partir de la solución y el documento de ayuda no pudo. ser generado exitosamente.
Descargue el programa fuente, use la conversión vs.net2005 para abrir la solución ndoc para depurar, modifique el error y pase la depuración. Los errores y soluciones relevantes se registran de la siguiente manera. El ensamblaje generado por vs.net se puede manejar en consecuencia.
1. Si el proyecto en la solución está en un directorio con un nombre chino, la excepción lanzada no se puede manejar. La razón es que cuando ndoc analiza el archivo de la solución, utiliza codificación UTF para abrir el archivo de la solución, lo que hace que los caracteres chinos no se procesen correctamente. Solución: abra el archivo de la solución en el proyecto gui, ubique el método de lectura y use (reader=new StreamReader(path)) para abrir el archivo usando (reader=new StreamReader(path,System.Text.Encoding.GetEncoding(0) )))reemplazar. Para conocer el uso específico de StreamReader, consulte msdn.
2. Al analizar archivos de proyecto, los archivos de proyecto generados por vs.net2005 son esencialmente archivos xml, pero algunos tienen etiquetas y algunos archivos de proyecto no, por ejemplo. Razones desconocidas y no tengo tiempo para analizar las razones específicas. Si alguien lo sabe, por favor dímelo. Esto lleva a la necesidad de procesar archivos de proyecto caso por caso. Analicé la idea original de ndoc y este también es el caso. Quizás los formatos de los dos archivos de proyecto en las versiones anteriores a 2005 eran diferentes, por lo que ndoc los procesó. caso por caso al analizar los archivos del proyecto. Sin embargo, aunque existen diferencias en los archivos de proyecto generados con vs.net2005, el formato es el mismo y no es necesario procesarlo caso por caso. Solución: abra el archivo del proyecto en el proyecto gui, busque GetConfiguratin (string configName) y cambie el siguiente código:
if (_ProjectDocument.FirstChild.Name == "Proyecto")
{
nodos = _ProjectNavigator.Select(string.Format("VS2005:Project/VS2005:PropertyGroup[@Condition=" '$(Configuración)|$(Plataforma)' == '{0}|AnyCPU' "]", configName ), _ProjectNamespaceManager);
}
demás
{
nodos = _ProjectNavigator.Select(String.Format("/VisualStudioProject/CSHARP/Build/Settings/Config[@Name='{0}']", configName));
}
Reemplazar con:
nodos = _ProjectNavigator.Select(string.Format("VS2005:Project/VS2005:PropertyGroup[@Condition=" '$(Configuración)|$(Plataforma)' == '{0}|AnyCPU' "]", configName ), _ProjectNamespaceManager);
después de realizar el procesamiento anterior y pasar la compilación, usar la función ndoc para crear un nuevo proyecto ndoc a partir de una solución .net se puede procesar normalmente, pero no sé si este procesamiento tendrá algún efecto adverso en el soluciones generadas por versiones anteriores a 2005. Impacto, sin embargo, el tiempo de lanzamiento de 2005 no es corto, y la mayoría de los proyectos deberían haberse migrado a 2005, por lo que el impacto no debería ser significativo.
http://www.cnblogs.com/yxy21969/archive/2006/11/28/575257.html