Aktivieren einer Assembly in einer Anwendung, die eine DLL, Erweiterung oder Systemsteuerung

Wenn Ihre Anwendung eine DLL, Eine Erweiterung, ein Plug-In oder eine Systemsteuerung von Drittanbietern hostet, möchten Sie möglicherweise eine Assembly in Ihrer Anwendung aktivieren, ohne diese Assembly für die gehosteten Komponenten zu aktivieren. Dies kann der Fall sein, wenn für eine gehostete Komponente Codeänderungen erforderlich sind, um die Assembly zu verwenden. Als Anwendungsentwickler können Sie möglicherweise keine Änderungen an diesen Drittanbieterkomponenten vornehmen. In diesem Fall sollten Sie das in diesem Abschnitt beschriebene Verfahren befolgen, damit Ihre Anwendung die Assembly ohne Auswirkungen auf die gehosteten Komponenten verwenden kann.

  • Um eine Assembly in einer Anwendung ohne Auswirkungen auf gehostete DLLs, Erweiterungen, Plug-Ins oder Systemsteuerungen zu aktivieren, sollte ein Manifest, das die Abhängigkeit der Anwendung von der Assembly beschreibt, als Ressource in die Anwendung aufgenommen werden. Die gehosteten Komponenten, die nicht mit der Assembly aktiviert werden, sollten keine Manifeste enthalten, die diese Abhängigkeit beschreiben.
  • Um eine Assembly in einer Anwendung und deren gehosteten DLLs, Erweiterungen, Plug-Ins oder Systemsteuerungen zu aktivieren, schließen Sie Manifeste als Ressourcen sowohl in der Anwendung als auch in ihren gehosteten Komponenten ein. Die in der Anwendung und in den gehosteten Komponenten enthaltenen Manifeste sollten jeweils eine Abhängigkeit von der Assembly beschreiben. In der Regel fügt der Anwendungsentwickler der Anwendung ein Manifest hinzu, und der Entwickler der gehosteten Komponente fügt der DLL, der Erweiterung, dem Plug-In oder der Systemsteuerung ein Manifest hinzu.

Die folgende Methode kann verwendet werden, um einer Anwendung oder einer gehosteten Komponente, bei der es sich um eine DLL, eine Erweiterung, ein Plug-In oder eine Systemsteuerung handelt, ein Manifest hinzuzufügen.

So aktivieren Sie eine Assembly in einer Anwendung oder gehosteten Komponente.

  1. Erstellen Sie ein Manifest, das die Abhängigkeit der Anwendung oder Erweiterung von der Assembly beschreibt.

    Beispielsweise kann das Manifest für "YourApplication" erstellt werden, indem das folgende Beispielmanifest kopiert und die richtigen Werte durch assemblyIdentity, processorArchitecture und description ersetzt werden. Legen Sie den Wert von processorArchitecture auf x86 fest, wenn auf einer 32-Bit-Plattform erstellt wird, und auf ia64, wenn sie auf einer 64-Bit-Plattform aufbauen. Das description-Element enthält eine Optionsbeschreibung der Anwendung. Weitere Informationen zum Manifestformat finden Sie unter Anwendungsmanifeste.

    <?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>
    
  2. Erstellen Sie eine Ressource in der Anwendung oder Erweiterung vom Typ RT_MANIFEST ID 2.

    Wenn der Name der Anwendung beispielsweise YourApp lautet, sollte die Anwendung Folgendes enthalten:

    #define MANIFEST_RESOURCE_ID 2
    MANIFEST_RESOURCE_ID RT_MANIFEST "YourApp.manifest"
    
  3. Kompilieren Sie die Anwendung mit dem Flag -DISOLATION_AWARE_ENABLED, oder fügen Sie diese Anweisung vor der #include "Windows.h"-Anweisung ein. Bei einer Anwendung mit mehreren Modulen ist für alle Module das Flag -DISOLATION_AWARE_ENABLED erforderlich.

    #define ISOLATION_AWARE_ENABLED 1
    
  4. Testen Sie, ob Assemblys, die von der Anwendung verwendet werden, ordnungsgemäß in der Anwendung und der gehosteten Komponente funktionieren.

Weitere Informationen zum Hinzufügen einer Assembly zu Anwendungen ohne Erweiterungen finden Sie unter Aktivieren einer Assembly in einer Anwendung ohne Erweiterungen.