Como: Configurar componentes baseados em .NET para a ativação do inscrição de chumbo
Ativação disponível de inscrição de componentes baseados em .NET é apenas um pouco mais complicado que para componentes COM.A instalação requer dois manifestos:
Aplicativos COM devem ter um manifesto do aplicativo do estilo do Win32 para identificar o componente gerenciado.
Componentes baseados em .NET devem ter um manifesto do componente para obter informações de ativação necessárias em time de execução.
Este tópico descreve como associar um manifesto do aplicativo a um aplicativo; associar um manifesto do componente um componente; e incorporar um manifesto do componente em um assembly.
Para criar um manifesto do aplicativo
Usando um editor XML, criar ou modificar o manifesto do aplicativo pertencente ao aplicativo do COM interoperar com um ou mais componentes gerenciado.
Insira o seguinte cabeçalho padrão no início do arquivo:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
Para obter informações sobre manifesto elementos e seus atributos, procure por "aplicativo manifestos Reference" no Biblioteca MSDN.
Identifique o proprietário do manifesto.No exemplo a seguir, myComApp versão 1 possui o arquivo de manifesto.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> <assemblyIdentity type="win32" name="myOrganization.myDivision.myComApp" version="1.0.0.0" processorArchitecture="x86" />
Identifica conjuntos de módulos dependentes.No exemplo a seguir, myComApp depende myManagedComp.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> <assemblyIdentity type="win32" name="myOrganization.myDivision.myComApp" version="1.0.0.0" processorArchitecture="x86" publicKeyToken="8275b28176rcbbef" /> <dependency> <dependentAssembly> <assemblyIdentity type="win32" name="myOrganization.myDivision.myManagedComp" version="6.0.0.0" processorArchitecture="X86" publicKeyToken="8275b28176rcbbef" language="*" /> </dependentAssembly> </dependency> </assembly>
salvar e nomeie o arquivo de manifesto.O nome de um manifesto do aplicativo é o nome do assembly executável seguido por extensão .manifest.Por exemplo, nome de arquivo de manifesto do aplicativo para myComApp.exe é myComApp.exe.manifest.
Você pode instalar um manifesto do aplicativo no mesmo diretório do aplicativo COM.sistema autônomo alternativa, você pode adicioná-lo sistema autônomo um recurso para arquivo .exe do aplicativo.Para obter informações adicionais, procure por "conjuntos lado a lado" na biblioteca MSDN.
Para criar um manifesto do componente
Usando um editor de XML criar um manifesto do componente para descrever o assembly gerenciado.
Insira o seguinte cabeçalho padrão no início do arquivo:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
Identifique o proprietário do arquivo.The <assemblyidentity> elemento de do <dependentassembly> elemento no arquivo de manifesto do aplicativo deve corresponder no manifesto do componente.No exemplo a seguir, myManagedComp versão 1.2.3.4 seja o proprietário do arquivo de manifesto.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> <assemblyIdentity name="myOrganization.myDivision.myManagedComp" version="1.2.3.4" /> publicKeyToken="8275b28176rcbbef"
Identifica cada classe no conjunto de módulos (assembly).Use o <clrclass> elemento para identificar exclusivamente cada classe no conjunto de módulos (assembly) gerenciado.O elemento, que é um subelemento do <assembly> elemento, tem os atributos descritos na tabela a seguir.
Atributo
Descrição
Necessário
CLSID
O identificador que especifica a classe a ser ativado.
Sim
description
Uma seqüência de caracteres que informa ao usuário sobre o componente.Uma seqüência de caracteres vazia é o padrão.
Não
name
Uma seqüência de caracteres que representa a classe gerenciada.
Sim
ProgID
O identificador a ser usada para ativação de ligação tardia.
Não
threadingModel
O modelo de segmentação COM."Ambos" é o valor padrão.
Não
runtimeVersion
Esse atributo é ignorado.Se o tempo de execução já não estiver carregado, a versão mais recente está carregada antes que a classe é ativada.Caso contrário, a versão atualmente carregada é usada.
Não
tlbid
O identificador da biblioteca de tipos que contém informações de tipo sobre a classe.
Não
Todas as Rótulos de atributo diferenciam diferenciar maiúsculas de minúsculas.Você pode obter CLSIDs, ProgIDs, threading modelos e a versão de tempo de execução, exibindo a biblioteca de tipos exportada para o assembly com o OLE/COM ObjectViewer (Oleview.exe).
Manifesto do componente a seguir identifica uma classe única com dois métodos.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> <assemblyIdentity name="myOrganization.myDivision.myManagedComp" version="1.2.3.4" /> publicKeyToken="8275b28176rcbbef" <clrClass clsid="{65722BE6-3449-4628-ABD3-74B6864F9739}" progid="myManagedComp.testClass1" threadingModel="Both" name="myManagedComp.testClass1" runtimeVersion="v1.0.3705"> </clrClass> <clrClass clsid="{367221D6-3559-3328-ABD3-45B6825F9732}" progid="myManagedComp.testClass2" threadingModel="Both" name="myManagedComp.testClass2" runtimeVersion="v1.0.3705"> </clrClass> <file name="MyManagedComp.dll"> </file> </assembly>
salvar e nomeie o arquivo de manifesto.O nome de um manifesto do componente é o nome da biblioteca de assembly seguido por extensão .manifest.Por exemplo, o myManagedComp.dll é myManagedComp.manifesto.
Você deve incorporar o manifesto do componente sistema autônomo um recurso no conjunto de módulos (assembly).
Para incorporar um manifesto do componente em um assembly gerenciado
Crie um script de recurso que contém a demonstrativo a seguir:
RT_MANIFEST 1 myManagedComp.manifest
Nesta demonstrativo, myManagedComp.manifest o nome do manifesto do componente está sendo incorporado. Para esse exemplo, nome de arquivo de script é myresource.rc.
compilar o script usando o Microsoft Windows recurso Compiler (rc.exe).No prompt de comando, digite o seguinte comando:
rc myresource.rc
Rc.exe produz o myresource.res arquivo de recurso.
Compilar arquivo de fonte do assembly novamente e especifique o arquivo de recurso usando o /win32res opção:
/win32res:myresource.res
Novamente, myresource.res é o nome do arquivo de recurso contendo recursos incorporados.
Consulte também
Conceitos
Requisitos para inscrição-disponível interoperabilidade COM
Configurando componentes COM para a ativação do inscrição de chumbo