추가 기능 등록
추가 기능을 만든 후에는 먼저 Visual Studio에 이를 등록해야 추가 기능 관리자에서 활성화할 수 있습니다.이 작업은 파일 확장명이 .addin인 XML 파일을 사용하여 수행됩니다.
.addin 파일에서는 Visual Studio가 추가 기능 관리자에 추가 기능을 표시하는 데 필요한 정보를 설명합니다.Visual Studio가 시작되면 .addin 파일 위치에서 사용할 수 있는 모든 .addin 파일을 찾습니다.이 파일이 발견되면 XML 파일을 읽고 추가 기능 관리자에 추가 기능을 클릭하여 시작할 때 필요한 정보를 제공합니다.
추가 기능 마법사를 사용하여 추가 기능을 만들 때 .addin 파일이 자동으로 만들어집니다.이 항목의 정보를 사용하여 .addin 파일을 수동으로 만들 수도 있습니다.
파일 위치
다음과 같이 추가 기능 마법사를 통해 두 개의 .addin 파일 복사본이 자동으로 만들어집니다.
.Addin 파일 위치 |
.DLL 파일 위치 |
설명 |
---|---|---|
루트 프로젝트 폴더 \Documents\Visual Studio 2010\Projects\MyAddin1\MyAddin1\ |
로컬 경로(MyAddin1.dll) |
추가 기능 프로젝트의 배포에 사용됩니다.간편한 편집을 위해 프로젝트에 포함되며 XCopy 방식의 배포를 위한 로컬 경로가 있습니다. |
추가 기능 폴더 \Documents\Visual Studio 2010\Addins\ 또는 Shared Documents Location\Addins\ |
프로젝트 디버그 폴더 예: \Documents\Visual Studio 2010 Projects\MyAddin1\MyAddin1\bin\ |
디버깅 환경에서 추가 기능을 실행하는 데 사용됩니다.항상 현재 빌드 구성의 출력 경로를 가리켜야 합니다. |
다른 컴퓨터에 추가 기능을 설치하려면 Visual Studio에서 추가 기능을 확인하는 위치에 .addin 파일을 배치해야 합니다.이러한 위치에 나열 된의 옵션 대화 상자에 환경 노드에는 추가 기능 보안 페이지. 자세한 내용은 추가 기능 보안를 참조하십시오.
추가 기능이 포함된 .dll 파일을 클라이언트 컴퓨터의 어느 위치에나 설치할 수 있습니다.그러나 이 파일을 .addin 파일과 함께 두는 곳이 좋습니다.
[!참고]
.addin 파일의 <Assembly> 요소는 추가 기능의 이진 파일이 포함된 .dll 파일을 가리켜야 합니다.
.Addin 파일
.addin XML 파일은 태그로 이루어진 다음과 같은 섹션으로 나뉘어 있습니다.
단원 |
설명 |
---|---|
호스트 응용 프로그램 |
(필수 요소) 추가 기능을 로드할 수 있는 응용 프로그램의 이름과 버전 번호를 지정합니다. |
추가 기능 |
(필수적 요소) 추가 기능을 설명하는 요소를 포함합니다. |
도구 옵션 페이지 |
(선택적 요소) 옵션 대화 상자에서 추가 기능을 구성할 수 있는 페이지를 지정합니다.자식 노드는 옵션 페이지의 범주와 하위 범주 및 해당 어셈블리 이름과 전체 클래스 이름을 지정합니다. |
다음 요소는 <Addin> 섹션의 자식입니다.
요소 |
설명 |
---|---|
AboutBoxDetails |
(선택적 요소) Visual Studio의 정보 대화 상자에 추가 기능에 대해 표시될 텍스트를 지정합니다. |
AboutIconData |
(선택적 요소) Visual Studio의 정보 대화 상자에 추가 기능에 대해 표시될 아이콘을 지정하는 이진 데이터를 포함합니다. |
아이콘 위치 정보 |
(선택적 요소) Visual Studio의 정보 대화 상자에 추가 기능에 대해 표시될 아이콘의 절대 경로나 상대 경로를 지정합니다. |
Assembly |
(필수 요소) 추가 기능 이진 파일의 위치를 지정합니다.이 필드는 로컬 경로, 네트워크 경로 또는 URL로 설정할 수 있습니다. |
CommandLineSafe |
(선택적 경로) 추가 기능이 호환되는 Visual Studio 모드(예: 명령줄 전용, IDE(통합 개발 환경) 전용 또는 둘 다)를 지정합니다. |
CommandPreload |
(선택적 요소) 추가 기능의 미리 로드 상태를 지정합니다. 즉 추가 기능에서 Commands.AddNamedCommand 같은 메서드를 사용하여 UI를 만들지 여부를 지정합니다. |
FullClassName |
(필수 요소) 추가 기능에 연결하는 데 사용되는 클래스의 이름을 지정합니다. |
LoadBehavior |
(선택적 요소) 추가 기능을 시작 시 로드할지 또는 수동으로 로드할지 정의합니다. |
각 설정에 대한 세부 내용은 다음과 같습니다.설명된 여러 요소의 계층적 위치에 대한 자세한 내용은 이 항목의 뒷부분에 나오는 ".Addin XML 파일의 예" 단원을 참조하십시오.
호스트 응용 프로그램
Host Application 섹션의 <Name> 요소에는 응용 프로그램의 이름이 포함됩니다.이것은 응용 프로그램의 제목 표시줄에 표시되거나 DTE.Name에서 반환되는 이름입니다.예를 들어, 이 태그에는 Visual Studio의 경우 "Microsoft Visual Studio"가 포함되고 매크로 IDE의 경우 "Microsoft Visual Studio Macros"가 포함됩니다.
각 .addin 파일에는 호스트 응용 프로그램 값이 여러 개 있을 수 있습니다.각 값은 <HostApplication> 요소의 <Name> 태그를 사용하여 묶어야 합니다.모든 <HostApplication> 요소에는 <Name> 요소 외에도 <Version> 태그로 묶은 응용 프로그램의 버전 번호가 있어야 합니다.다음 예제를 참조하십시오.
<HostApplication>
<!-- First Host App name (required). -->
<Name>Microsoft Visual Studio</Name>
<Version>10.0</Version>
</HostApplication>
<HostApplication>
<!-- An additional supported program/version. -->
<Name>Microsoft Visual Studio Macros</Name>
<Version>10.0</Version>
</HostApplication>
또는 모든 버전의 Visual Studio를 나타내기 위해 <Version>의 값으로 별표(*)를 지정할 수도 있습니다.
이름
<Addin> 요소 아래의 <FriendlyName> 요소는 추가 기능 관리자의 사용 가능한 추가 기능 열에 표시될 문자열을 지정합니다.다음 예제를 참조하십시오.
<FriendlyName>My New Super Addin</FriendlyName>
설명
<Addin> 요소 아래의 <Description> 요소는 추가 기능 관리자의 설명 상자에 표시될 문자열을 지정합니다.다음 예제를 참조하십시오.
<Description>This add-in will change your life!</Description>
AboutBoxDetails
추가 기능을 만들 때 정보 대화 상자에 대한 설정을 생성하는 옵션을 선택하면 .addin 파일에 이 요소가 추가됩니다.이 요소는 Visual Studio의 정보 대화 상자에 표시될 텍스트를 지정합니다.다음 예제를 참조하십시오.
<AboutBoxDetails>For add-in support, call 1-800-xxx-
xxxx.</AboutBoxDetails>
AboutIconData
추가 기능을 만들 때 정보 대화 상자에 대한 설정을 생성하는 옵션을 선택하면 .addin 파일에 이 요소가 추가됩니다.이 요소에는 Visual Studio의 정보 대화 상자에 표시될 아이콘을 지정하는 이진 데이터가 포함됩니다.다음 예제를 참조하십시오.
<AboutIconData>0000010006 . . . FFFF0000</AboutIconData>
Assembly
<Addin> 요소 아래의 <Assembly> 요소는 추가 기능 이진 파일의 위치를 지정합니다.이 요소를 상대 경로, 절대 경로("file"), 등록된 어셈블리 이름("assembly") 또는 URL("url")로 설정할 수 있습니다.
다음 예제에서는 절대 경로 위치를 보여 줍니다.이 경우 src 매개 변수는 추가 기능 DLL의 위치를 나타내기 위해 file로 설정되어 있습니다.
<Assembly src="file">C:\Documents and Settings\jdoe\Application Data\Microsoft\Visual Studio\10.0\AddIns\MyAddin4.dll</Assembly>
다음 예제에서는 등록된 위치를 보여 줍니다.이 경우 src 매개 변수는 등록된 추가 기능 DLL을 나타내기 위해 assembly로 설정되어 있습니다.
<Assembly src="assembly">BookshelfDefineAddin</Assembly>
다음 예제에서는 URL 위치를 보여 줍니다.이 경우 src 매개 변수는 추가 기능 DLL의 웹 기반 위치를 나타내기 위해 url로 설정되어 있습니다.
<Assembly src="url">http://somewebsite.com/MyAddin4.dll</Assembly>
FullClassName
<FullClassName> 요소는 추가 기능에 연결하는 데 사용되는 클래스의 전체 이름을 지정합니다.여기에는 클래스를 포함하는 네임스페이스가 포함됩니다.다음 예제를 참조하십시오.
<FullClassName>MyAddin4.Connect</FullClassName>
LoadBehavior
<LoadBehavior> 요소는 추가 기능을 IDE 시작 시 자동으로 로드할지 또는 직접 시작할지를 정의합니다.<LoadBehavior> 요소는 <Addin> 요소 아래에 있습니다.다음 예제를 참조하십시오.
<LoadBehavior>1</LoadBehavior>
<LoadBehavior>는 선택적으로 사용할 수 있지만 이 요소를 사용하여 추가 기능이 로드되는 시기를 명시적으로 정의하는 것이 좋습니다.
값 |
설명 |
---|---|
0 |
추가 기능은 IDE 시작 시 로드되지 않으며 직접 시작해야 합니다. |
1 |
IDE 시작 시 추가 기능이 자동으로 로드됩니다. |
4 |
명령 프롬프트에서 build 스위치(devenv /build)를 사용하여 devenv를 시작할 때 추가 기능이 로드됩니다. |
CommandPreload
<CommandPreload> 요소는 추가 기능을 미리 로드해야 하는지 여부를 지정합니다.미리 로드하도록 지정한 경우에는 .addin 파일을 설치한 후 Visual Studio가 처음으로 시작될 때 추가 기능이 로드됩니다.다음 예제를 참조하십시오.
<CommandPreload>1</CommandPreload>
이 요소를 사용하면 Visual Studio가 시작된 후 추가 기능을 로드하도록 지정할 수 있습니다.이를 통해 추가 기능에서 명령 모음 단추 같은 필요한 UI 요소를 만들거나, 추가 기능의 기본 설정 생성과 같은 처음 한 번만 필요한 기타 초기화 작업을 수행할 수 있습니다.사용자가 추가 기능에서 만든 명령 중 하나를 실행하기 전까지 추가 기능은 언로드되어 있습니다.이후부터 필요한 경우 추가 기능이 로드됩니다.
값 |
설명 |
---|---|
0 |
사용자가 추가 기능 관리자를 사용하여 추가 기능을 시작하거나 시작 시 로드하도록 설정하기 전까지 추가 기능은 로드되지 않습니다. |
1 |
.addin 파일이 설치된 후 Visual Studio가 처음으로 시작될 때 추가 기능이 자동으로 로드됩니다. |
사용자가 구현하는 OnConnection 메서드를 검사함으로써 두 번째 인수를 OnConnection으로 사용하여 지정된 연결 형식이 ext_cm_UISetup인지 확인할 수 있습니다.그럴 경우에는 AddNamedCommand 또는 AddControl 메서드를 사용하여 원하는 명령을 배치할 수 있습니다.
CommandLineSafe
선택적 요소인 <CommandLineSafe> 요소는 명령 프롬프트에서 시작 시(예: 명령줄 빌드 또는 이와 유사한 작업 수행 시) UI를 표시하지 않도록 추가 기능이 디자인되어 있는지 여부를 나타냅니다.이 작업은 추가 기능 마법사에서 **추가 기능에 모달 UI를 표시하지 않으며 추가 기능을 명령줄 빌드에서 사용합니다.**를 선택하여 수행됩니다. 또한 이 요소는 추가 기능이 호환되는 Visual Studio 모드(예: 명령줄 전용 또는 IDE 전용)를 지정합니다.다음 예제를 참조하십시오.
<CommandLineSafe>0</CommandLineSafe>
값 |
설명 |
---|---|
0 |
추가 기능이 명령줄에서 사용할 때 안전하지 않고 UI를 표시할 수도 있음을 지정합니다. |
1 |
추가 기능이 명령줄에서 사용할 때 안전하고 UI를 표시하지 않음을 지정합니다. |
도구 옵션 페이지
선택적 요소인 <ToolsOptionsPage> 요소는 사용자가 추가 기능을 구성할 수 있도록 옵션 페이지를 지정합니다.자식 노드는 페이지가 표시되는 범주와 하위 범주 및 옵션 페이지의 어셈블리 이름과 전체 클래스 이름을 지정합니다.다음 예제에서는 이 요소의 계층 구조를 보여 줍니다.
<ToolsOptionsPage>
<Category Name="Text Editor">
<SubCategory Name="General">
<Assembly>"MyFilePath\MyAddInOptionPage.dll"</Assembly>
<FullClassName>"MyNamespace.MyAddInOptionPage"</FullClassName>
</SubCategory>
</Category>
</ToolsOptionsPage>
.Addin XML 파일의 예
다음 예제에서는 전체 .addin XML 파일을 보여 줍니다.이 항목에 설명된 요소의 계층 구조와 위치를 보여 줍니다.
<?xml version="1.0" encoding="UTF-16" standalone="no"?>
<Extensibility
xmlns="https://schemas.microsoft.com/AutomationExtensibility">
<HostApplication>
<Name>Microsoft Visual Studio Macros</Name>
<Version>10.0</Version>
</HostApplication>
<HostApplication>
<Name>Microsoft Visual Studio</Name>
<Version>10.0</Version>
</HostApplication>
<Addin>
<FriendlyName>My great new add-in.</FriendlyName>
<Description>This add-in does it all.</Description>
<AboutBoxDetails>Copyright 2010.</AboutBoxDetails>
<AboutIconData>0000 . . . FFFF0000</AboutIconData>
<Assembly>MyNewAddin.dll</Assembly>
<FullClassName>MyNewAddin.Connect</FullClassName>
<LoadBehavior>1</LoadBehavior>
<CommandPreload>1</CommandPreload>
<CommandLineSafe>0</CommandLineSafe>
</Addin>
</Extensibility>