Compartilhar via


Classe ProvideBindingPathAttribute

Este atributo permite que os assemblies no seu Visual Studio pacote ou extensão a ser usado por outros pacotes e extensões.Ele adiciona o diretório onde o seu pacote for instalado para o Visual Studio lista, que é usada para resolver referências de assembly de investigação.

Hierarquia de herança

System.Object
  System.Attribute
    Microsoft.VisualStudio.Shell.RegistrationAttribute
      Microsoft.VisualStudio.Modeling.Shell.ProvideBindingPathAttribute

Namespace:  Microsoft.VisualStudio.Modeling.Shell
Assembly:  Microsoft.VisualStudio.Modeling.Sdk.Shell.11.0 (em Microsoft.VisualStudio.Modeling.Sdk.Shell.11.0.dll)

Sintaxe

'Declaração
<AttributeUsageAttribute(AttributeTargets.Class, AllowMultiple := True, Inherited := True)> _
Public NotInheritable Class ProvideBindingPathAttribute _
    Inherits RegistrationAttribute
[AttributeUsageAttribute(AttributeTargets.Class, AllowMultiple = true, Inherited = true)]
public sealed class ProvideBindingPathAttribute : RegistrationAttribute

O tipo ProvideBindingPathAttribute expõe os membros a seguir.

Construtores

  Nome Descrição
Método público ProvideBindingPathAttribute

Superior

Propriedades

  Nome Descrição
Propriedade pública SubPath Um subcaminho opcional definir depois de $PackageFolder$.Isso deve ser usado se os assemblies a analisada residem em um diretório diferente do que o arquivo pkgdef.
Propriedade pública TypeId (Herdado de RegistrationAttribute.)

Superior

Métodos

  Nome Descrição
Método público Equals Infraestrutura. Retorna um valor que indica se esta instância é igual a um objeto especificado. (Herdado de Attribute.)
Método público GetHashCode Retorna o código hash para essa instância. (Herdado de Attribute.)
Método público GetType Obtém Type da instância atual. (Herdado de Object.)
Método público IsDefaultAttribute Quando substituído em uma classe derivada, indica se o valor desta instância é o valor padrão para a classe derivada. (Herdado de Attribute.)
Método público Match Quando substituído em uma classe derivada, retorna um valor que indica se esta instância é igual a um objeto especificado. (Herdado de Attribute.)
Método público Register Registre o caminho do componente (ou opcionalmente um subcaminho do caminho componente) como um caminho adicional que o Gerenciador de montagem do Visual Studio investigarão ao tentar resolver assemblies.Chamado quando o pacote está instalado. (Substitui RegistrationAttribute.Register(RegistrationAttribute.RegistrationContext).)
Método público ToString Retorna uma cadeia de caracteres que representa o objeto atual. (Herdado de Object.)
Método público Unregister Cancelar o registro o caminho do componente como um caminho de ligação.Chamado quando o pacote é desinstalado. (Substitui RegistrationAttribute.Unregister(RegistrationAttribute.RegistrationContext).)

Superior

Implementações explícitas da interface

  Nome Descrição
Implementação explícita da interfaceMétodo particular _Attribute.GetIDsOfNames Mapeia um conjunto de nomes para um conjunto correspondente de identificadores de despacho. (Herdado de Attribute.)
Implementação explícita da interfaceMétodo particular _Attribute.GetTypeInfo Recupera as informações de tipo para um objeto, que pode ser usado para obter as informações de tipo para uma interface. (Herdado de Attribute.)
Implementação explícita da interfaceMétodo particular _Attribute.GetTypeInfoCount Recupera o número de interfaces de informações de tipo que um objeto fornece (0 ou 1). (Herdado de Attribute.)
Implementação explícita da interfaceMétodo particular _Attribute.Invoke Fornece acesso a propriedades e métodos expostos por um objeto. (Herdado de Attribute.)

Superior

Comentários

ObservaçãoObservação

Essa informação é aplicável a Visual Studio 2010.Um método alternativo pode ser fornecido em versões posteriores.

Se desejar que os assemblies em seu pacote ou extensão fiquem visíveis para outras extensões, você deve aplicar esse atributo para sua classe de pacote ou ao seu assembly.Por exemplo:

[ProvideBindingPath] 
public class MyVsPackage : Microsoft.VisualStudio.Shell.Package 
{ ... }

Se você estiver usando a visualização e modelagem SDK para criar uma linguagem específica de domínio (DSL), o atributo é aplicado automaticamente em DslPackage\Package.cs.

Se você não estiver criando uma DSL, incluem o seguinte arquivo em seu projeto:

%VSSDKInstallDir%\VisualStudioIntegration\Common\Source\CSharp\RegistrationAttributes\ProvideBindingPathAttribute.cs

Se os assemblies do seu pacote estão em um subdiretório em relação do .pkgdef arquivo, você pode usar esta variante:

[ProvideBindingPath(SubPath="SubFolder1")] 
public class MyPackage : Microsoft.VisualStudio.Shell.Package 
{ ... }

Você pode usar mais de uma ProvideBindingPath se você desejar especificar vários diretórios de atributo.

Observação de cuidadoCuidado

Porque este atributo se estender a lista de pastas onde o Visual Studio procura por módulos (assemblies), você poderá notar uma queda no desempenho se você instalar vários pacotes que tenham esse atributo.

Como o atributo de caminho de ligação do pacote funciona

Esse atributo, gerará uma entrada em seu pacote .pkgdef o arquivo, que pode ser encontrado na pasta build.Isso por sua vez cria uma entrada no registro quando o seu pacote for instalado em um computador de destino.A entrada do registro fornece um caminho que deve ser analisado para assemblies de candidato quando outros assemblies são carregados.

Por exemplo, o .pkgdef entrada é semelhante a esta:

[$RootKey$\BindingPaths\o GUID do pacote]"$PackageFolder$"=""

Quando o pacote é instalado em um computador de destino, uma entrada do registro é adicionada em HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\11.0_Config\BindingPaths\o GUID do pacote.A entrada inclui um atributo de seqüência de caracteres que indica a pasta de instalação do pacote.

Acesso thread-safe

Quaisquer membros estático (Shared no Visual Basic) públicos deste tipo são thread-safe. Não há garantia de que qualquer membro de instância seja thread-safe.

Consulte também

Referência

Namespace Microsoft.VisualStudio.Modeling.Shell

Package

Outros recursos

Implantação de soluções de linguagem específica do domínio