소스 제어 플러그 인 설치
원본 제어 플러그 인을 만드는 데에는 다음 세 단계가 포함됩니다.
이 설명서에서 원본 제어 플러그 인 API 참조 섹션에 정의된 함수를 사용하여 DLL을 만듭니다.
원본 제어 플러그 인 API로 정의된 함수를 구현합니다. Visual Studio에서 필요하면 플러그 인에서 인터페이스 및 대화 상자를 사용할 수 있게 합니다.
적합한 레지스트리 항목을 만들어서 DLL을 등록합니다.
Visual Studio와의 통합
Visual Studio는 원본 제어 플러그 인 API를 준수하는 원본 제어 플러그 인을 지원합니다.
원본 제어 플러그 인 등록
IDE(통합 개발 환경) 실행으로 원본 제어 시스템을 호출할 수 있으려면 먼저 API를 내보내는 원본 제어 플러그 인 DLL을 찾아야 합니다.
원본 제어 플러그 인 DLL을 등록하려면 다음을 수행합니다.
SOFTWARE 하위 키의 HKEY_LOCAL_MACHINE 키 아래에 회사 이름 하위 키와 그 뒤에 오는 제품 이름 하위 키를 지정하는 두 항목을 추가합니다. 패턴은 HKEY_LOCAL_MACHINE\SOFTWARE\<회사 이름>\<제품 이름>\<항목> = 값입니다. 두 항목을 항상 SCCServerName 및 SCCServerPath라고 합니다. 각 항목은 일반적인 문자열입니다.
예를 들어 회사 이름이 Microsoft이고 원본 제어 제품 이름이 SourceSafe인 경우 이 레지스트리 경로는 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SourceSafe입니다. 이 하위 키에서 첫 번째 항목인 SCCServerName은 제품 이름을 지정하는 사용자가 읽을 수 있는 문자열입니다. 두 번째 항목인 SCCServerPath는 IDE가 연결해야 하는 원본 제어 플러그 인 DLL의 전체 경로입니다. 다음은 샘플 레지스트리 항목을 제공합니다.
샘플 레지스트리 항목 샘플 값 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SourceSafe\SCCServerName Microsoft Visual SourceSafe HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SourceSafe\SCCServerPath c:\vss\win32\ssscc.dll 참고 항목
SCCServerPath는 SourceSafe 플러그 인의 전체 경로입니다. 원본 제어 플러그 인에는 서로 다른 회사 및 제품 이름이 사용되지만 레지스트리 항목 경로가 동일합니다.
다음 선택적인 레지스트리 항목을 사용하여 원본 제어 플러그 인의 동작을 수정할 수 있습니다. 이러한 항목은 SccServerName 및 SccServerPath와 동일한 하위 키로 이동합니다.
원본 제어 플러그 인을 Visual Studio의 플러그 인 선택 목록에 표시하지 않으려면 HideInVisualStudioregistry 항목을 사용할 수 있습니다. 이 항목은 또한 원본 제어 플러그 인으로의 자동 전환에 영향을 줍니다. 이 항목의 한 가지 가능한 용도는 원본 제어 플러그 인을 대체하는 원본 제어 패키지를 제공하지만, 사용자가 원본 제어 플러그 인을 사용하는 것에서 원본 제어 패키지로 쉽게 마이그레이션할 수 있게 하려는 경우입니다. 원본 제어 패키지가 설치되면 플러그 인을 숨기는 레지스트리 항목이 설정됩니다.
HideInVisualStudio는 DWORD 값이며 플러그 인을 숨길 경우 1로, 플러그 인을 표시할 경우에는 0으로 설정합니다. 레지스트리 항목이 표시되지 않은 경우의 기본 동작은 플러그 인 표시입니다.
DisableSccManager 레지스트리 항목을 사용하면 일반적으로 파일>원본 제어 하위 메뉴에 표시되는 시작 < 원본 제어 서버> 메뉴 옵션을 사용하지 않도록 설정하거나 숨길 수 있습니다. 이 메뉴 옵션을 선택하면 SccRunScc 함수가 호출됩니다. 원본 제어 플러그 인이 외부 프로그램을 지원하지 않을 수 있으므로, 시작 메뉴 옵션을 사용하지 않도록 설정하거나 숨겨야 할 수도 있습니다.
DisableSccManager는 DWORD 값이며 시작 < 원본 제어 서버> 메뉴 옵션을 사용하도록 설정하려면 0으로 설정하고, 메뉴 옵션을 사용하지 않도록 설정하려면 1로 설정하고, 메뉴 옵션을 숨기려면 2로 설정합니다. 이 레지스트리 항목이 표시되지 않은 경우의 기본 동작은 메뉴 옵션 표시입니다.
샘플 레지스트리 항목 샘플 값 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SourceSafe\HideInVisualStudio 1 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SourceSafe\DisableSccManager 1 SOFTWARE 하위 키의 HKEY_LOCAL_MACHINE 키 아래에 SourceCodeControlProvider 하위 키를 추가합니다.
이 하위 키 아래에서 레지스트리 항목 ProviderRegKey는 1단계에서 레지스트리에 배치한 하위 키를 나타내는 문자열로 설정됩니다. 패턴은 HKEY_LOCAL_MACHINE\SOFTWARE\SourceCodeControlProvider\ProviderRegKey = SOFTWARE\<회사 이름>\<제품 이름>입니다.
다음은 이 하위 키의 샘플 콘텐츠입니다.
레지스트리 항목 샘플 값 HKEY_LOCAL_MACHINE\SOFTWARE\SourceCodeControlProvider\ProviderRegKey SOFTWARE\Microsoft\SourceSafe 참고 항목
원본 제어 플러그 인에 동일한 하위 키 및 항목 이름이 사용되지만 값이 다릅니다.
SourceCodeControlProvider 하위 키 아래에 InstalledSCCProviders라는 하위 키를 만든 다음, 해당 하위 키 아래에 항목을 하나 배치합니다.
이 항목의 이름은 사용자가 읽을 수 있는 공급자의 이름이고(SCCServerName 항목에 지정된 값과 동일), 값은 다시 말하지만 1단계에서 만든 하위 키입니다. 패턴은 HKEY_LOCAL_MACHINE\SOFTWARE\SourceCodeControlProvider\InstalledSCCProviders\<표시 이름> = SOFTWARE\<회사 이름>\<제품 이름>입니다.
예시:
샘플 레지스트리 항목 샘플 값 HKEY_LOCAL_MACHINE\SOFTWARE\SourceCodeControlProvider\InstalledSCCProviders\Microsoft Visual SourceSafe SOFTWARE\Microsoft\SourceSafe 참고 항목
이 방식으로 여러 원본 제어 플러그 인을 등록할 수 있습니다. 이 방법으로 Visual Studio는 모든 설치된 원본 제어 플러그 인 API 기반 플러그 인을 찾습니다.
IDE가 DLL을 찾는 방법
Visual Studio IDE에는 원본 제어 플러그 인 DLL을 찾는 두 가지 방법이 있습니다.
기본 원본 제어 플러그 인을 찾아서 자동으로 연결합니다.
사용자가 선택할 수 있는 등록된 모든 원본 제어 플러그 인을 찾습니다.
첫 번째 방법으로 DLL을 찾으려면 IDE가 HKEY_LOCAL_MACHINE\Software\SourceCodeControlProvider 하위 키에서 ProviderRegKey 항목을 찾습니다. 이 항목의 값은 또 다른 하위 키를 가리킵니다. 그런 다음, IDE가 HKEY_LOCAL_MACHINE 아래의 두 번째 하위 키에서 SccServerPath라는 항목을 찾습니다. 이 항목의 값은 IDE를 DLL로 연결합니다.
참고 항목
IDE는 상대 경로에서 DLL을 로드하지 않습니다(예: .\NewProvider.DLL). DLL의 전체 경로를 지정해야 합니다(예: c:\Providers\NewProvider.DLL). 이렇게 하면 권한이 없거나 가장된 플러그 인 DLL이 로드되는 것을 방지하여 IDE의 보안이 강화됩니다.
두 번째 방법으로 DLL을 찾으려면 IDE가 HKEY_LOCAL_MACHINE\Software\SourceCodeControlProvider\InstalledSCCProviders 하위 키 아래에서 모든 항목을 찾습니다. 각 항목에는 이름과 값이 있습니다. IDE는 이러한 이름 목록을 사용자에게 표시합니다. 사용자가 이름을 선택하면 IDE가 하위 키를 가리키는 선택한 이름의 값을 찾습니다. IDE가 HKEY_LOCAL_MACHINE 아래의 해당 하위 키에서 SccServerPath라는 항목을 찾습니다. 이 항목의 값은 IDE를 올바른 DLL로 연결합니다.
원본 제어 플러그 인은 DLL을 찾는 두 방법을 모두 지원해야 합니다. 따라서 ProviderRegKey를 설정하여 이전 설정을 덮어써야 합니다. 더 중요한 것은 사용자가 사용할 원본 제어 플러그 인을 선택할 수 있도록 그 자체를 InstalledSccProviders 목록에 추가해야 한다는 것입니다.
참고 항목
HKEY_LOCAL_MACHINE 키가 사용되기 때문에 지정된 컴퓨터에서 하나의 원본 제어 플러그 인만 기본 원본 제어 플러그 인으로 등록할 수 있습니다. 그러나 Visual Studio에서는 사용자가 실제로 특정 솔루션에 사용하려는 원본 제어 플러그 인을 결정할 수 있습니다. 설치 프로세스 중 원본 제어 플러그 인이 이미 설정되었는지 확인합니다. 설정되었으면 설치하려는 새 원본 제어 플러그 인을 기본값으로 설정할지 여부를 사용자에게 묻습니다. 제거 중에는 HKEY_LOCAL_MACHINE\SOFTWARE\SourceCodeControlProvider에서 모든 원본 제어 플러그 인에 공통되는 다른 레지스트리 하위 키를 제거하지 마세요. 특정 SCC 하위 키만 제거하세요.
IDE에서 버전 1.2/1.3 지원을 검색하는 방법
Visual Studio에서 플러그 인이 원본 제어 플러그 인 API 버전 1.2 및 1.3 함수를 지원하는지 여부를 어떻게 검색하나요? 고급 기능을 선언하려면 원본 제어 플러그 인이 해당 함수를 구현해야 합니다.
먼저 Visual Studio는 SccGetVersion을 호출하여 반환되는 값을 확인합니다. 1.2보다 크거나 같아야 합니다.
그런 다음, Visual Studio는 SccInitialize에서 lpSccCaps
인수를 검사하여 특정 새 함수가 지원되는지 여부를 확인합니다.
이렇나 조건이 모두 충족되면 버전 1.2 및 1.3에서 지원되는 새 함수를 호출할 수 있습니다.