Compartilhar via


Recursos gerenciados VSPackages

O SDK do Visual Studio é projetada para finalizar a era do usuário do satélite nativa da interface (UI) DLLs, disponibilizando recursos gerenciados para a criação de VSPackage. Você pode incorporar recursos localizados em nativo satélite DLLs de interface do usuário, DLLs satélite gerenciado, ou em um VSPackage gerenciado propriamente dito.

Alguns recursos não podem ser incorporados VSPackages. Os seguintes tipos gerenciados podem ser incorporados:

  • Sequências

  • Chaves de carregamento do pacote (que também são cadeias de caracteres)

  • Ícones da janela de ferramenta

  • Arquivos de saída da tabela de comando (CTO) compilados

  • CTO bitmaps

  • Ajuda de linha de comando

  • Sobre a caixa de diálogo dados

Recursos em um pacote gerenciado são selecionados por ID do recurso. Uma exceção é o arquivo CTO, que deve ser nomeado CTMENU. O arquivo CTO deve aparecer na tabela de recursos, como um byte[]. Todos os outros itens de recurso são identificados por tipo.

Você pode usar o PackageRegistrationAttribute atributo para indicar ao Visual Studio que os recursos gerenciados estão disponíveis.

<PackageRegistration(UseManagedResourcesOnly:=True)>
Public NotInheritable Class MyPackage
    Inherits Package
[PackageRegistration(UseManagedResourcesOnly = true)]
public sealed class MyPackage : Package

Definindo PackageRegistrationAttribute dessa maneira indica que Visual Studio deve ignorar DLLs de satélite não gerenciada, quando ele procura recursos, por exemplo, usando LoadPackageString. Se Visual Studio encontra dois ou mais recursos que têm a mesma identificação de recurso, ele usa o primeiro recurso encontrar.

Exemplo

O exemplo a seguir é uma representação gerenciada de um ícone da janela de ferramenta.

<data name="1001"
type="System.Resources.ResXFileRef,System.Windows.Forms">
     <value>
     MyToolWinIcon.bmp;
     System.Drawing.Bitmap,
     System.Drawing,
     Version=1.0.0.0,
     Culture=neutral,
     PublicKeyToken=b03f5f7f11d50a3a
     </value>
</data>

O exemplo a seguir demonstra como incorporar a matriz de bytes do CTO, deve ser nomeada CTMENU.

<data name="CTMENU"
type="System.Resources.ResXFileRef,System.Windows.Forms">
     <value>
     MyPackage.cto;
     System.Byte[],
     mscorlib,
     Version=1.0.0.0,
     Culture=neutral,
     PublicKeyToken=b03f5f7f11d50a3a
     </value>
</data>

Observações sobre a implementação

Visual Studiocarregamento de atrasos de VSPackages sempre que possível. Isso é uma conseqüência da incorporação de um arquivo CTO na VSPackage Visual Studio deve carregar todos os tais VSPackages na memória durante a instalação, que é quando ele cria uma tabela de comandos mesclada. Recursos podem ser extraídos do VSPackage examinando os metadados sem executar o código o VSPackage. O VSPackage não foi inicializado neste momento, portanto, a perda de desempenho é mínima.

Quando Visual Studio solicitações de um recurso do VSPackage após a instalação, que o pacote é provável que já seja carregado e inicializado, para que a perda de desempenho é mínima.

Consulte também

Conceitos

Carregando VSPackages

Recursos localizados em aplicativos MFC: DLLs satélites

Outros recursos

VSPackages gerenciados

VSPackages gerenciados