난이도 : ★★★☆☆

프로그램을 제작하고 클래스, 메서드, 변수 등등 주석들의 도움말이나 chm파일의 설명서를 쉽게 만드는 방법이다. 그냥 쉽게 따라하면된다.

1. Visual Studio 빌드 속성 변경하기.
Visual Studio 2005나 Visual Studio 2008에서 프로젝트를 하나 생성한다. 프로젝트 생성후 클래스나 변수를 선언하고 주석(///)을 단다. 프로젝트 속성을 선택하고 빌드텝에서 XML 문서 파일을 체크해준다. 그러면 프로젝트 빌드시 XML파일이 하나 생성된다. 하지만 이것을 설정하면 빌드시 주석이 없으면 경고 메세지가 나온다. 필히 주석이 100% 달아주어야한다.


2. sandcastle과 HTML Help Workshop을 설치하자.
HTML Help Workshop은 sandcastle이 이 프로그램의 모듈을 이용하기때문에 로컬에 우선적으로 설치되어있어야한다. HTML Help Workshop은 프리웨어로 네이버자료실등등 어디서든 구할수있다. HTML Help Workshop 설치되었다면 sandcastle 을 다운받아 설치한다. 설치가 끝나면 바탕화면이나 시작메뉴에 아무것도 생성이 되지않는다. 잘못되어다고 생각 할 필요가없다. 원래그런다. OTL.. 단, C:\Program Files\Sandcastle 에 파일이 생성되었는지만 확인하면된다. 확인되었다면 다음으로 고고고~

사용자 삽입 이미지

무조건 긍정적으로 버튼을 클릭!!


3. ChmBuilder.config 파일에 한글을 추가한다.
우리는 주석에서 한글을 사용하기때문에 한글이 인식되도록 설정해줘야한다.
C:\Program Files\Sandcastle\ProductionTools에 ChmBuilder.config파일이 있다.
그 파일에서 언어 부분에 한국어를 추가해주면된다. 빨간색의 Language 선언부분을 복사해서 붙여넣는다.
<languages>
    <language id="1033" codepage="65001" name="0x409 English (United States)" />
    <language id="2052" codepage="936" name="0x804 Chinese (PRC)" />
    <language id="1042" codepage="949" name="0x412 Korean (KOREA)" />
</languages>

4. 이제 만들어보자.
설정이 다 끝났다면 아까 만든 프로젝트에 클래스나 변수등을 추가하고 빌드를 하면 \프로제트명\bin\Debug 폴더에 XML파일이 하나 생성된다. (당근 디버그모드에 따라 경로명은 다르다.) 
C:\Program Files\Sandcastle\Examples\generic에 SandcastleGui가 있다. 이걸 실행하면 아래 그림과 같은 화면이 띈다.
Assemblies에 프로젝트 빌드 후 생성된 exe나 dll 실행파일을 넣는다. Comments에는 아까 생성된 XML파일을 설정해준다. Dependent Assemblies에는 참조하는 dll이 있다면 추가해주면된다. 없다면 그냥 비워둔다.
다음은 Options를 설정한다. Name에는 생성될 파일의 이름을 넣어준다. Presenation Style에 vs2005를 설정한다. vs2008도 그냥 vs2005로 설정해서 사용하면된다.  LanguageID에는 1042 로 바꿔야한다.
DefaultTargets 에는 생성물을 선택하는것이다. Chm파일로 생성물을 출력하고자한다면 Chm을 선택하고 Hxs로 출력하고 싶다면 Hxs를 선택한다. 둘다 동시에 선택해도된다. 다만 시간이 많이 걸릴뿐.. ㅋ

사용자 삽입 이미지
마지막으로 빌드 버튼을 클릭한다. 그리고 끝났다는 메세지가 나올때까지 기다린다. 시간이 좀 걸린다. 그냥 다른 일을 하고있으면된다. 다 되었다면 C:\Program Files\Sandcastle\Examples을 확인하면 설정한 Name 이름의 폴더가 하나 생겼을것이다. 그 폴더 안에 결과물이 생성되어 있을것이다. 끝~~~
사용자 삽입 이미지

Chm 실행 후 캡처 화면


 PPT : SandCastle
 링크 : http://blogs.msdn.com/sandcastle

신고
Posted by 사나에