Недавно при разработке проекта я планировал использовать NDoc для создания справочной документации для библиотеки классов. Я скачал китайскую версию Percyboy 1.3. В документации сказано, что она поддерживает .net2.0. Однако при ее использовании я обнаружил, что при применении NDoc для создания нового проекта NDoc из решения возникло исключение, а справочный документ не смог. быть успешно сгенерирован.
Загрузите исходную программу, используйте преобразование vs.net2005, чтобы открыть решение ndoc для отладки, измените ошибку и выполните отладку. Соответствующие ошибки и решения записываются следующим образом. Если вы хотите использовать NDoc для создания файла справки. сборка, созданная vs.net, может быть обработана соответствующим образом.
1. Если проект в решении находится в каталоге с китайским именем, возникшее исключение не может быть обработано. Причина в том, что когда ndoc анализирует файл решения, он использует кодировку UTF для открытия файла решения, в результате чего китайские символы обрабатываются неправильно. Решение. Откройте файл решения в проекте графического интерфейса, найдите метод чтения и используйте (reader=new StreamReader(path)) для открытия файла, используя (reader=new StreamReader(path,System.Text.Encoding.GetEncoding(0) )))заменять. Подробную информацию об использовании StreamReader см. в msdn.
2. При анализе файлов проекта файлы проекта, созданные с помощью vs.net2005, по существу являются XML-файлами, но некоторые из них имеют теги , а некоторые файлы проекта их не имеют, например неизвестные причины, и у меня нет времени анализировать конкретные причины. Если кто-нибудь знает, подскажите. Это приводит к необходимости обрабатывать файлы проекта в индивидуальном порядке. Я проанализировал первоначальную идею ndoc, и это тоже так. Возможно, форматы двух файлов проекта в версиях до 2005 года были разными, поэтому ndoc обработал их. в каждом конкретном случае при анализе файлов проекта. Однако, несмотря на различия в файлах проекта, созданных с помощью vs.net2005, формат один и тот же, и его не нужно обрабатывать в каждом конкретном случае. Решение. Откройте файл проекта в проекте графического интерфейса, найдите GetConfiguratin(string configName) и измените следующий код:
if (_ProjectDocument.FirstChild.Name == "Проект")
{
nodes = _ProjectNavigator.Select(string.Format("VS2005:Project/VS2005:PropertyGroup[@Condition=" '$(Configuration)|$(Platform)' == '{0}|AnyCPU' "]", configName ), _ProjectNamespaceManager);
}
еще
{
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 для создания нового проекта ndoc из решения .net может обрабатываться нормально, но я не знаю, окажет ли эта обработка какие-либо негативные последствия на решения, созданные версиями до 2005 года. Влияние, однако, время запуска 2005 года не является коротким, и большинство проектов должны были быть перенесены на 2005 год, поэтому влияние не должно быть значительным.
http://www.cnblogs.com/yxy21969/archive/2006/11/28/575257.html