Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
A ativação sem registo para componentes baseados em .NET Framework é apenas ligeiramente mais complicada do que para componentes COM. A configuração requer dois manifestos:
As aplicações COM devem ter um manifesto de aplicação ao estilo Win32 para identificar o componente gerido.
Os componentes baseados no .NET Framework devem ter um manifesto de componentes para a informação de ativação necessária em tempo de execução.
Este tópico descreve como associar um manifesto de aplicação a uma aplicação; associar um manifesto de componente a um componente; e incorporar um manifesto de componente numa assembleia.
Criar um manifesto de aplicação
Usando um editor XML, crie (ou modifique) o manifesto da aplicação pertencente à aplicação COM que está a interoperar com um ou mais componentes geridos.
Insira o seguinte cabeçalho padrão no início do ficheiro:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> </assembly>Para informações sobre elementos manifestos e os seus atributos, consulte Manifestos de Aplicação.
Identifique o proprietário do manifesto. No exemplo seguinte,
myComAppa versão 1 é proprietária do ficheiro 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="msil" /> </assembly>Identificar assemblies dependentes. No exemplo seguinte,
myComAppdepende demyManagedComp.<?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" /> </dependentAssembly> </dependency> </assembly>Guarda e nomeia o ficheiro do manifesto. O nome de um manifesto de aplicação é o nome do executável assembly seguido da extensão .manifest. Por exemplo, o nome do ficheiro manifest da aplicação para myComApp.exe é myComApp.exe.manifest.
Pode instalar um manifesto de aplicação no mesmo diretório da aplicação COM. Em alternativa, pode adicioná-lo como recurso ao ficheiro .exe da aplicação. Para mais informações, consulte Sobre Montagens Lado a Lado.
Criar um manifesto de componentes
Usando um editor XML, crie um manifesto de componentes para descrever a assembly gerida.
Insira o seguinte cabeçalho padrão no início do ficheiro:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> </assembly>Identifique o proprietário do ficheiro. O elemento
<assemblyIdentity>do elemento<dependentAssembly>no ficheiro manifesto da aplicação deve corresponder ao do manifesto do componente. No exemplo seguinte,myManagedCompa versão 1.2.3.4 detém o ficheiro manifest.<?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" processorArchitecture="msil" /> </assembly>Identifique cada classe na assembleia. Use o elemento
<clrClass>para identificar de forma única cada classe na assembly gerido. O elemento, que é um subelemento do<assembly>elemento, tem os atributos descritos na tabela seguinte.Attribute Description Obrigatório clsidO identificador que especifica a classe a ativar. Yes descriptionUma cadeia que informa o utilizador sobre o componente. Uma cadeia vazia é o padrão. Não nameUma string que representa a classe gerenciada. Yes progidO identificador a ser usado para ativação com limite tardio. Não threadingModelO modelo de threading COM. "Ambos" é o valor padrão. Não runtimeVersionEspecifica a versão do Common Language Runtime (CLR) a utilizar. Se não especificar este atributo, e o CLR ainda não estiver carregado, o componente é carregado com o CLR instalado mais recente antes da versão 4 do CLR. Se especificar v1.0.3705, v1.1.4322 ou v2.0.50727, a versão avança automaticamente para a versão mais recente instalada do CLR anterior à versão 4 do CLR (normalmente v2.0.50727). Se outra versão do CLR já estiver carregada e a versão especificada puder ser carregada lado a lado durante o processo, a versão especificada é carregada; caso contrário, é utilizado o CLR carregado. Isto pode causar uma falha de carga. Não tlbidO identificador da biblioteca de tipos que contém a informação de tipo sobre a classe. Não Todas as etiquetas de atributos são sensíveis a maiúsculas minúsculas. Pode obter CLSIDs, ProgIDs, modelos de encadeamento e a versão em tempo de execução ao visualizar a biblioteca de tipos exportada para o assembly com o OLE/COM ObjectViewer (Oleview.exe).
O seguinte manifesto de componentes identifica duas classes,
testClass1etestClass2.<?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>Guarda e nomeia o ficheiro do manifesto. O nome de um manifesto componente é o nome da biblioteca assembly seguido da extensão .manifest. Por exemplo, o myManagedComp.dll é myManagedComp.manifest.
Tens de incorporar o manifesto do componente como um recurso na assembleia.
Para incorporar um manifesto de componente num assembly gerido
Crie um script de recurso que contenha a seguinte instrução:
1 RT_MANIFEST myManagedComp.manifestNesta afirmação,
myManagedComp.manifesté o nome do manifesto do componente que está a ser incorporado. Neste exemplo, o nome do ficheiro de script émyresource.rc.Compilar o script usando o Microsoft Windows Resource Compiler (Rc.exe). No prompt de comando, digite o seguinte comando:
rc myresource.rcRc.exe produz o
myresource.resficheiro de recursos.Compila novamente o ficheiro fonte da assembly e especifica o ficheiro de recurso usando a opção /win32res :
/win32res:myresource.resMais uma vez,
myresource.resé o nome do ficheiro de recurso que contém recursos embutidos.