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
Recursos localizados em aplicativos MFC: DLLs satélites