최근 프로젝트를 개발할 때 NDoc을 사용하여 클래스 라이브러리에 대한 도움말 문서를 생성할 계획이었습니다. Percyboy 중국어 버전 1.3을 다운로드했는데, .net2.0을 지원한다고 나와 있었는데, 사용해보니 솔루션에서 새 NDoc 프로젝트를 생성하기 위해 NDoc을 적용할 때 예외가 발생하고 도움말 문서에서 오류가 발생하는 것을 발견했습니다. 성공적으로 생성됩니다.
소스 프로그램을 다운로드하고 vs.net2005 변환을 사용하여 디버깅을 위한 ndoc 솔루션을 열고 버그를 수정한 후 디버깅을 전달합니다. 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 파일이지만 일부 프로젝트 파일에는 <?xml version="1.0" 인코딩="utf-8"?> 태그가 있고 일부 프로젝트 파일에는 없습니다. 이유는 알 수 없고, 구체적인 이유를 분석할 시간은 없습니다. 아시는 분은 알려주세요. 이로 인해 프로젝트 파일을 사례별로 처리해야 합니다. ndoc의 원래 아이디어를 분석했는데 아마도 2005년 이전 버전의 두 프로젝트 파일 형식이 달랐기 때문에 ndoc에서 처리한 것 같습니다. 프로젝트 파일을 구문 분석할 때 사례별로. 그러나 vs.net2005로 생성된 프로젝트 파일에는 차이가 있지만 형식은 동일하므로 사례별로 처리할 필요는 없습니다. 해결 방법: gui 프로젝트에서 프로젝트 파일을 열고 GetConfiguratin(string configName)을 찾은 후 다음 코드를 변경합니다.
if (_ProjectDocument.FirstChild.Name == "프로젝트")
{
node = _ProjectNavigator.Select(string.Format("VS2005:Project/VS2005:PropertyGroup[@Condition=" '$(Configuration)|$(Platform)' == '{0}|AnyCPU' "]", configName ), _ProjectNamespaceManager);
}
또 다른
{
node = _ProjectNavigator.Select(String.Format("/VisualStudioProject/CSHARP/Build/Settings/Config[@Name='{0}']", configName));
}
다음으로 교체:
node = _ProjectNavigator.Select(string.Format("VS2005:Project/VS2005:PropertyGroup[@Condition=" '$(Configuration)|$(Platform)' == '{0}|AnyCPU' "]", configName ), _ProjectNamespaceManager);
위의 처리를 하고 컴파일을 통과한 후, ndoc의 함수를 사용하여 .net 솔루션에서 새로운 ndoc 프로젝트를 생성하는 것은 정상적으로 처리될 수 있지만, 이 처리가 2005년 이전 버전에서 생성된 솔루션입니다. 그러나 영향은 2005년 출시 시기가 짧지 않고 대부분의 프로젝트가 2005년으로 마이그레이션되었어야 하므로 영향이 크지 않을 것입니다.
http://www.cnblogs.com/yxy21969/archive/2006/11/28/575257.html