2008-10-14 3 views
23

Sandcastle을 통해 제품의 도움말 파일을 생성하는 데 사용되는 매우 철저한 XML 기반 문서가 포함 된 어셈블리가 있습니다. 또한 프로그래머가 어셈블리를 명백하게 사용할 때 Visual Studio에서 적절한 Intellisense를 제공하기 위해 출력 XML 파일을 사용합니다.어셈블리에 Intellisense Xml 설명서 포함?

이렇게하려면 사용자에게 어셈블리 ("assembly.dll")와 설명서 ("assembly.xml")를 모두 제공 한 것 같습니다.

어셈블리 내에 문서를 포함 할 수 있으므로 단일 어셈블리 파일 만 제공하면 Visual Studio에서 정보를 추출 할 수 있습니까? 어쩌면 자원이나 그와 비슷한 것으로 포함될 수 있습니까?

답변

13

Visual Studio는 Intellisense 용 XML 문서 만 인식하므로 둘 다 제공해야합니다.

+1

수치심. 동일한 설명서가 COM 서버 (DLL)에 포함되어 있습니다. 그것이 파일 크기를 많이 증가시킬 것이라고 상상하기 어렵습니다. – MarkJ

1

내가 뭔가를 놓친가요? 난 항상 (3 슬래시 또는 3 눈금 표시 (VB)를 사용하여) 평소대로 주석을 달고 내장 된 XML 태그를 사용하고 어셈블리를 사용할 때 intellisense를 얻습니다. 드물게 extrernal xml 파일을 사용합니다.

+2

코드 완성과 같이 Intellisense를 얻거나 실제로 작성한 설명서를 얻습니까? 나는. VS는 자동으로 메소드리스트와 매개 변수 등을 자동으로 생성 할 수 있지만 필자가 문서를 호스트 컴퓨터에서도 사용할 수 있는지 확인하지 않는 한 문서를 얻지 못한다. – ulrikj

5

C : \ Windows \ Microsoft.NET \ Framework \ v2.0.50727을 검색하면 응용 프로그램에서 참조 할 수있는 모든 .net 어셈블리가 xml 파일을 사용하고 있음을 알 수 있습니다. Visual Studio는 xml 파일이있는 경우에만 어셈블리에 인텔리 센스를 제공합니다. 예를 들어, Visual Studio를 닫고 System.Drawing.xml 파일을 제거한 다음 VS를 다시 열면 해당 어셈블리에 대한 인텔리 센스가 없어야합니다. 그런 다음 VS를 닫고 다시 복사 한 다음 VS를 다시 열어 인텔리 센스가 다시 작동해야합니다.

+0

실제로 XML 파일을 제거하면 여전히 _some_ Intellisense가 있습니다. "///"주석은 보이지 않지만 메서드 서명과 오버로드는 여전히 발생합니다. 아마, 이것은 반영에 의해 행해진 다. –