Como: instalar um plug-in de controle de origem
A criação de um controle de fonte plug-in envolve três etapas:
Crie uma DLL com as funções definidas na seção de referência de API de plug-in de controle de origem desta documentação.
Implemente as funções definidas pelo API de plug-in de controle de origem. Quando Visual Studio chamadas para ele, disponibilizar interfaces e caixas de diálogo do plug-in.
Registre a DLL, tornando as entradas de registro apropriadas.
Integração com Visual Studio
Visual Studiooferece suporte a plug-ins de controle de origem que estão de acordo com a API de plug-in de controle de origem.
Registrando o plug-in de controle de origem
Antes de um ambiente de desenvolvimento integrado (IDE) em execução pode chamar o sistema de controle de origem, ele deve saber a origem de controlar a DLL de plug-in que exporta a API.
Para registrar a fonte de controle de DLL de plug-in
Adicione duas entradas sob a chave HKEY_LOCAL_MACHINE na subchave SOFTWARE que especifica seu subchave de nome de empresa seguido por seu subchave de nome do produto. O padrão é HKEY_LOCAL_MACHINE\SOFTWARE\[company name]\[nome do produto]\[entry] = valor. As duas entradas são sempre chamadas de SCCServerName e SCCServerPath. Cada um é uma seqüência regular.
Por exemplo, se o nome da sua empresa é a Microsoft e o seu produto de controle de origem se chama SourceSafe, então esse caminho de registro seria HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SourceSafe. Nessa subchave, a primeira entrada, SCCServerName, é uma seqüência de caracteres legível pelo usuário, nomeando seu produto. A segunda entrada, SCCServerPath, é o caminho completo para a fonte de controlar a DLL de plug-in que o IDE deve se conectar. A seguir fornece exemplos de entradas de registro:
Exemplo de entrada do registro
Valor de exemplo
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SourceSafe\SCCServerName
Microsoft Visual SourceSafe
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SourceSafe\SCCServerPath
c:\vss\win32\ssscc.dll
Dica
O SCCServerPath é o caminho completo para o plug-in do SourceSafe.O plug-in de controle de origem usará os nomes de produtos e empresas diferentes, mas os mesmos caminhos de entrada do registro.
As seguintes entradas do Registro opcionais podem ser usadas para modificar o comportamento do seu plug-in de controle de origem. Essas entradas vá na mesma subchave como SccServerName e SccServerPath.
A entrada de HideInVisualStudioregistry pode ser usada se você não quiser que sua origem-plug-in do controle apareça na lista de plug-in Selection Visual Studio. Essa entrada também afetará a alternância automática de plug-in de controle de origem. Um dos usos possíveis para essa entrada é se você fornecer um pacote de controle de origem que substitui o plug-in de controle de origem, mas você deseja tornar mais fácil para o usuário migrar de usando o plug-in para o pacote de controle de origem do controle de origem. Quando o pacote de controle de origem é instalado, ele define essa entrada do registro, que oculta o plug-in.
HideInVisualStudio é um valor DWORD e é definido como 1 para ocultar o plug-in ou 0 para mostrar o plug-in. Se a entrada do registro não for exibido, o comportamento padrão é mostrar o plug-in.
A entrada de registro DisableSccManager pode ser usada para desativar ou ocultar o lançamento < servidor de controle de origem > opção de menu que normalmente aparece sob o arquivo -> De controle de origem submenu. Selecionando esse menu opção chamadas a Função SccRunScc função. O plug-in de controle de origem pode não oferecer suporte a um programa externo e, portanto, você pode desativar ou até mesmo ocultar o Iniciar opção de menu.
DisableSccManager é um valor DWORD é definido como 0 para habilitar o lançamento < servidor de controle de origem > opção de menu, definido como 1 para desativar a opção de menu e definido como 2 para ocultar a opção de menu. Se essa entrada do registro não for exibido, o comportamento padrão é mostrar a opção de menu.
Exemplo de entrada do registro
Valor de exemplo
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SourceSafe\HideInVisualStudio
1
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SourceSafe\DisableSccManager
1
Adicione a subchave SourceCodeControlProvider, sob a chave HKEY_LOCAL_MACHINE na subchave de SOFTWARE.
Sob essa subchave, a entrada do registro ProviderRegKey está definida como uma seqüência que representa a subchave que você colocou no registro na etapa 1. O padrão é HKEY_LOCAL_MACHINE\SOFTWARE\SourceCodeControlProvider\ProviderRegKey = SOFTWARE\[company name]\[nome do produto].
A seguir está o conteúdo de exemplo para essa subchave.
Entrada do registro
Valor de exemplo
HKEY_LOCAL_MACHINE\SOFTWARE\SourceCodeControlProvider\ProviderRegKey
SOFTWARE\Microsoft\SourceSafe
Dica
O plug-in de controle de origem usará a mesma subchave e nomes de entrada, mas o valor será diferente.
Crie uma subchave denominada InstalledSCCProviders sob a subchave SourceCodeControlProvider e, em seguida, coloque uma entrada sob essa subchave.
O nome dessa entrada é o nome legível pelo usuário do provedor (o mesmo que o valor especificado para a entrada de SCCServerName) e o valor é, novamente, a subchave criada na etapa 1. O padrão é HKEY_LOCAL_MACHINE\SOFTWARE\SourceCodeControlProvider\InstalledSCCProviders\[nome de exibição] = SOFTWARE\[company name]\[nome do produto].
Por exemplo:
Exemplo de entrada do registro
Valor de exemplo
HKEY_LOCAL_MACHINE\SOFTWARE\SourceCodeControlProvider\InstalledSCCProviders\Microsoft Visual SourceSafe
SOFTWARE\Microsoft\SourceSafe
Dica
Pode haver vários controle plug-ins origem registrados dessa maneira.Isso é como Visual Studio localiza todos os plug-ins baseadas em API de plug-in de controle de origem de instalados.
Como um IDE localiza a DLL
O Visual Studio IDE tem duas maneiras de localizar a fonte de controlam a DLL de plug-in:
Encontrar o controle de fonte padrão plug-in e conectá-lo silenciosamente.
Localize origem registrada todos os plug-ins de controle, do qual o usuário deve escolher uma.
Para localizar a DLL da primeira forma, o IDE procura sob a subchave HKEY_LOCAL_MACHINE\Software\SourceCodeControlProvider para a entrada ProviderRegKey. O valor dessa entrada aponta para outra subchave. Em seguida, o IDE procura uma entrada chamada SccServerPath nessa segunda subchave em HKEY_LOCAL_MACHINE. O valor dessa entrada aponta o IDE para a DLL.
Dica
O IDE não carregar DLLs de caminhos relativos (por exemplo.\NewProvider.dll).Um caminho completo para a DLL deve ser especificado (por exemplo, c:\Providers\NewProvider.DLL).Isso reforça a segurança do IDE, evitando o carregamento de DLLs de plug-in não autorizados ou representadas.
Para localizar a DLL da segunda forma, o IDE procura em todas as entradas na subchave HKEY_LOCAL_MACHINE\Software\SourceCodeControlProvider\InstalledSCCProviders*.* Cada entrada tem um nome e um valor. O IDE exibe uma lista desses nomes para o usuário*.* Quando o usuário escolhe um nome, o IDE localiza o valor para o nome selecionado que aponta para uma subchave. O IDE procura uma entrada chamada SccServerPath nessa subchave em HKEY_LOCAL_MACHINE. O valor desta entrada aponta o IDE para a DLL correta.
Um plug-in de controle de origem precisa oferecer suporte a ambas as maneiras de localizar a DLL e, conseqüentemente, definir ProviderRegKey, substituindo qualquer definição anterior. Mais importante, ele deve se adicionar à lista de InstalledSccProviders para que o usuário possa ter uma escolha de qual plug-in de controle de origem para usar.
Dica
Como a chave HKEY_LOCAL_MACHINE é usada, controle de origem de apenas um plug-in pode ser registrado como o controle de fonte padrão plug-in em uma determinada máquina (no entanto, Visual Studio permite que os usuários determinem qual plug-in de controle de origem que desejam realmente usar para uma determinada solução).Durante o processo de instalação, verifique se um plug-in de controle de origem já está definido; Neste caso, peça que ele se deve ou não definir o novo controle de origem plug-in que está sendo instalado como padrão.Durante a desinstalação, não remova outras subchaves do registro que são comuns para controle de origem todos os plug-ins no HKEY_LOCAL_MACHINE\SOFTWARE\SourceCodeControlProvider; Remova somente a subchave de SCC específico.
Como o IDE detecta a versão 1.2/1.3 suporte
Como oferece Visual Studio detectar se uma funcionalidade de versão 1.2 e 1.3 do plug-in oferece suporte à API de plug-in de controle de origem? Para declarar um recurso avançado, o plug-in de controle de origem deve implementar a função correspondente.
Primeiro, Visual Studio verifica o valor retornado pela chamada a Função SccGetVersion. Ele deve ser maior ou igual a 1.
Em seguida, Visual Studio determina se o novo recurso específico é suportado, examinando o lpSccCaps argumento na Função SccInitialize.
Se as duas condições forem atendidas, as novas funções de suporte nas versões 1.2 e 1.3 podem ser chamadas.