Abilitazione di un assembly in un'applicazione che ospita una DLL, un'estensione o un Pannello di controllo
Se l'applicazione ospita una DLL, un'estensione, un plug-in o un pannello di controllo di terze parti, è possibile abilitare un assembly nell'applicazione, senza abilitare anche questo assembly per i componenti ospitati. Questo può essere il caso in cui un componente ospitato richiede modifiche al codice per l'uso dell'assembly. Come sviluppatore di applicazioni, potrebbe non essere possibile apportare modifiche a questi componenti di terze parti. In questo caso, è consigliabile seguire la procedura descritta in questa sezione in modo che l'applicazione possa usare l'assembly senza influire sui componenti ospitati.
- Per abilitare un assembly in un'applicazione senza influire sulle DLL ospitate, le estensioni, i plug-in o i pannelli di controllo, un manifesto che descrive la dipendenza dell'applicazione dall'assembly deve essere incluso nell'applicazione come risorsa. I componenti ospitati che non sono abilitati con l'assembly non devono includere manifesti che descrivono questa dipendenza.
- Per abilitare un assembly in un'applicazione e le dll ospitate, le estensioni, i plug-in o i pannelli di controllo, includere manifesti come risorse nell'applicazione e nei relativi componenti ospitati. I manifesti inclusi nell'applicazione e nei componenti ospitati devono descrivere ogni dipendenza dall'assembly. In genere, lo sviluppatore di applicazioni aggiunge un manifesto all'applicazione e lo sviluppatore del componente ospitato aggiunge un manifesto alla DLL, all'estensione, al plug-in o al pannello di controllo.
Il metodo seguente può essere usato per aggiungere un manifesto a un'applicazione o a un componente ospitato che è una DLL, un'estensione, un plug-in o un pannello di controllo.
Per abilitare un assembly in un'applicazione o in un componente ospitato.
Creare un manifesto che descrive la dipendenza dell'applicazione o dell'estensione nell'assembly.
Ad esempio, il manifesto per "YourApplication" può essere creato copiando il manifesto di esempio seguente e sostituendo i valori corretti per assemblyIdentity, processorArchitecture e descrizione. Impostare il valore di processorArchitecture su x86 se si basa su una piattaforma a 32 bit e su ia64 se si basa su una piattaforma a 64 bit. L'elemento description contiene una descrizione dell'opzione dell'applicazione. Per altre informazioni sul formato manifesto, vedere manifesti dell'applicazione.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> <assemblyIdentity version="1.0.0.0" processorArchitecture="x86" name="YourCompanyName.YourDivision.YourApp" type="win32" /> <description>Your app description here</description> <dependency> <dependentAssembly> <assemblyIdentity type="win32" name="Proseware.Research.SampleAssembly" version="6.0.0.0" processorArchitecture="X86" publicKeyToken="0000000000000000" language="*" /> </dependentAssembly> </dependency> </assembly>
Creare una risorsa nell'applicazione o nell'estensione di tipo RT_MANIFEST id 2.
Ad esempio, se il nome dell'applicazione è YourApp, l'applicazione deve contenere quanto segue:
#define MANIFEST_RESOURCE_ID 2 MANIFEST_RESOURCE_ID RT_MANIFEST "YourApp.manifest"
Compilare l'applicazione con il flag -DISOLATION_AWARE_ENABLED o inserire questa istruzione prima dell'istruzione #include "Windows.h". Nel caso di un'applicazione con più moduli, è necessario il flag -DISOLATION_AWARE_ENABLED in tutti i moduli.
#define ISOLATION_AWARE_ENABLED 1
Testare per assicurarsi che gli assembly usati dall'applicazione funzionino correttamente nell'applicazione e nel componente ospitato.
Per altre informazioni sull'aggiunta di un assembly alle applicazioni senza estensioni, vedere Abilitazione di un assembly in un'applicazione senza estensioni.