Aktivieren einer Assembly in einer Anwendung, die eine DLL, Erweiterung oder Systemsteuerung
Wenn Ihre Anwendung eine DLL, Erweiterung, ein Plug-In oder eine Systemsteuerung eines Drittanbieters hostet, sollten Sie eine Assembly in Ihrer Anwendung aktivieren, ohne diese Assembly auch für die gehosteten Komponenten zu aktivieren. Dies kann der Fall sein, wenn eine gehostete Komponente Codeänderungen erfordert, 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 verwenden kann, ohne dass sich dies auf die gehosteten Komponenten auswirkt.
- Um eine Assembly in einer Anwendung ohne Auswirkungen auf gehostete DLLs, Erweiterungen, Plug-Ins oder Steuerungspanels zu aktivieren, sollte ein Manifest, das die Abhängigkeit der Anwendung von der Assembly beschreibt, in der Anwendung als Ressource enthalten sein. 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 ihren gehosteten DLLs, Erweiterungen, Plug-Ins oder Steuerungspanels zu aktivieren, schließen Sie Manifeste als Ressourcen sowohl in der Anwendung als auch in den 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, erweiterung, ein Plug-In oder eine Systemsteuerung handelt, ein Manifest hinzuzufügen.
So aktivieren Sie eine Assembly in einer Anwendung oder gehosteten Komponente.
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 für assemblyIdentity, processorArchitecture und description ersetzen. Legen Sie den Wert von processorArchitecture auf x86 fest, wenn Sie auf einer 32-Bit-Plattform erstellen, und auf ia64, wenn sie auf einer 64-Bit-Plattform aufbaut. 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>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"Kompilieren Sie die Anwendung mit dem Flag -DISOLATION _ AWARE _ ENABLED, oder fügen Sie diese Anweisung vor der # Include-Anweisung "Windows.h" ein. Im Fall einer Anwendung mit mehreren Modulen ist das Flag -DISOLATION _ AWARE ENABLED für alle Module _ erforderlich.
#define ISOLATION_AWARE_ENABLED 1Testen Sie, um sicherzustellen, dass assemblys, die von der Anwendung verwendet werden, in der Anwendung und der gehosteten Komponente ordnungsgemäß funktionieren.
Weitere Informationen zum Hinzufügen einer Assembly zu Anwendungen ohne Erweiterungen finden Sie unter Aktivieren einer Assembly in einer Anwendung ohne Erweiterungen.