Interoperabilità COM senza registrazioneRegistration-Free COM Interop

L'interoperabilità COM senza registrazione consente di attivare un componente senza usare il Registro di sistema di Windows per memorizzare informazioni sugli assembly.Registration-free COM interop activates a component without using the Windows registry to store assembly information. Anziché registrare un componente su un computer durante la distribuzione, vengono creati file manifesto di tipo Win32 contenenti informazioni sull'associazione e sull'attivazione in fase di progettazione.Instead of registering a component on a computer during deployment, you create Win32-style manifest files at design time that contain information about binding and activation. L'attivazione di un oggetto è controllata da tali file manifesto, anziché da chiavi del Registro di sistema.These manifest files, rather than registry keys, direct the activation of an object.

Usando l'attivazione senza registrazione per gli assembly, anziché effettuarne la registrazione durante la distribuzione, è possibile usufruire di due vantaggi:Using registration-free activation for your assemblies instead of registering them during deployment offers two advantages:

  • È possibile controllare la versione della DLL che verrà attivata in caso di installazione di più versioni in un computer.You can control which DLL version is activated when more than one version is installed on a computer.

  • Gli utenti finali possono copiare l'applicazione in una directory appropriata del computer tramite XCOPY o FTP.End users can use XCOPY or FTP to copy your application to an appropriate directory on their computer. L'applicazione potrà quindi essere eseguita da tale directory.The application can then be run from that directory.

Questa sezione descrive i due tipi di manifesto necessari per l'interoperabilità COM senza registrazione: il manifesto dell'applicazione e quello del componente.This section describes the two types of manifests needed for registration-free COM interop: application and component manifests. Questi manifesti sono costituiti da file XML.These manifests are XML files. Un manifesto dell'applicazione, creato dallo sviluppatore di un'applicazione, contiene metadati che descrivono gli assembly e le relative dipendenze.An application manifest, which is created by an application developer, contains metadata that describes assemblies and assembly dependencies. Un manifesto del componente, creato dallo sviluppatore di un componente, contiene informazioni altrimenti inserite nel Registro di sistema di Windows.A component manifest, created by a component developer, contains information otherwise located in the Windows registry.

Requisiti per l'interoperabilità COM senza registrazioneRequirements for registration-free COM interop

  1. Il supporto per l'interoperabilità COM senza registrazione varia leggermente a seconda del tipo di assembly di libreria; in particolare, se l'assembly non è gestito (COM side-by-side) o gestito (basato su .NET).Support for registration-free COM interop varies slightly depending on the type of library assembly; specifically, whether the assembly is unmanaged (COM side-by-side) or managed (.NET-based). La tabella seguente illustra il sistema operativo e i requisiti di versione di .NET Framework per ogni tipo di assembly.The following table shows the operating system and .NET Framework version requirements for each assembly type.

    Tipo di assemblyAssembly type Sistema operativoOperating system Versione di .NET Framework.NET Framework version
    Assembly side-by-side COMCOM side-by-side Microsoft Windows XPMicrosoft Windows XP Non richiestoNot required.
    Basato su .NET.NET-based Windows XP con SP2Windows XP with SP2 NET Framework versione 1.1 o successiva.NET Framework version 1.1 or later.

    La famiglia Windows Server 2003 supporta anche l'interoperabilità COM senza registrazione per gli assembly basati su .NET.The Windows Server 2003 family also supports registration-free COM interop for .NET-based assemblies.

    Affinché una classe basata su .NET sia compatibile con l'attivazione senza registrazione da COM, la classe deve avere un costruttore predefinito e deve essere pubblica.For a .NET-based class to be compatible with registry-free activation from COM, the class must have a default constructor and must be public.

Configurazione di componenti COM per l'attivazione senza registrazioneConfiguring COM components for registration-free activation

  1. Affinché un componente COM partecipi all'attivazione senza registrazione è necessario distribuirlo come assembly side-by-side.For a COM component to participate in registration-free activation, it must be deployed as a side-by-side assembly. Gli assembly side-by-side non sono gestiti.Side-by-side assemblies are unmanaged assemblies. Per altre informazioni, vedere Using Side-by-side Assemblies (Uso di assembly side-by-side) in MSDN Library.For more information, see Using Side-by-side Assemblies.

    Per usare gli assembly side-by-side COM, uno sviluppatore di applicazioni basate su .NET deve fornire un manifesto dell'applicazione che contenga le informazioni di associazione e attivazione.To use COM side-by-side assemblies, a .NET-based application developer must provide an application manifest, which contains the binding and activation information. Il supporto per gli assembly side-by-side è integrato nel sistema operativo Windows XP.Support for unmanaged side-by-side assemblies is built into the Windows XP operating system. Il runtime COM, supportato dal sistema operativo, esegue l'analisi di un manifesto dell'applicazione per informazioni sull'attivazione quando il componente attivato non è presente nel Registro di sistema.The COM runtime, supported by the operating system, scans an application manifest for activation information when the component being activated is not in the registry.

    L'attivazione senza registrazione è facoltativa per i componenti COM installati in Windows XP.Registration-free activation is optional for COM components installed on Windows XP. Per istruzioni dettagliate sull'aggiunta di un assembly side-by-side a un'applicazione, vedere Using Side-by-side Assemblies (Uso di assembly side-by-side) in MSDN Library.For detailed instructions on adding a side-by-side assembly to an application, see Using Side-by-side Assemblies.

    Nota

    L'esecuzione side-by-side è una funzionalità di .NET Framework che consente di eseguire contemporaneamente sullo stesso computer più versioni del runtime e più versioni delle applicazioni e dei componenti che usano una versione del runtime.Side-by-side execution is a .NET Framework feature that enables multiple versions of the runtime, and multiple versions of applications and components that use a version of the runtime, to run on the same computer at the same time. L'esecuzione side-by-side e gli assembly side-by-side sono meccanismi diversi per fornire la funzionalità side-by-side.Side-by-side execution and side-by-side assemblies are different mechanisms for providing side-by-side functionality.

Vedere ancheSee also