Verwenden von Side-by-Side-Assemblys

Verwenden Sie das folgende Verfahren, um eine neue Anwendung zu entwickeln oder eine vorhandene Anwendung zu aktualisieren, um die von Microsoft oder anderen seitenseitigen Assemblys verfügbaren Assemblys zu verwenden. Eine Liste der derzeit von Microsoft bereitgestellten side-by-side Assemblys finden Sie unter "Unterstützte Microsoft Side-by-Side Assemblys". Beachten Sie, dass die Anwendung mindestens Windows XP ausgeführt werden muss, um die Assemblys als querseitige Assemblys zu installieren. Weitere Informationen finden Sie unter Richtlinien zum Erstellen von querseitigen Assemblys.

So fügen Sie einer Anwendung eine querseitige Assembly hinzu

  1. Identifizieren Sie die nebenseitigen Assemblys, die Ihre Anwendung benötigt. Ab Windows XP werden diese querseitigen Assemblys und ihre Assemblymanifeste mit dem Betriebssystem installiert, aber nicht global registriert.

  2. Verwenden Sie einen XML-Editor, um ein Anwendungsmanifest zu erstellen. Siehe das Beispielanwendungsmanifest unten. Weitere Informationen finden Sie unter Anwendungsmanifesten in der Manifestdateienreferenz.

  3. Geben Sie Attributwerte in das Def-Context-AssemblyIdentity-Unterelement des Anwendungsmanifests ein, das die Anwendung eindeutig definiert. Weitere Informationen zur DEF-Context-AssemblyIdentity finden Sie unter Anwendungsmanifesten.

  4. Wenn die Assembly abhängige Assemblys enthält, geben Sie Attributwerte in die entsprechenden REF-Context-AssemblyIdentity-Unterelemente des Anwendungsmanifests ein. Weitere Informationen zur REF-Context-AssemblyIdentity finden Sie unter Anwendungsmanifesten.

    <dependentAssembly>
      <assemblyIdentity type="win32"
                        name="Microsoft.Windows.SampleAssembly"
                        version="6.0.0.0" processorArchitecture="x86"
                        publicKeyToken="a5aaf5ba15723d5"/>
    
  5. Sie können das Anwendungsmanifest in die binäre ausführbare Headerdatei der Anwendung einschließen.

    Fügen Sie in diesem Fall auch die folgende Zeile zur Anwendungsheaderdatei hinzu:

    CREATEPROCESS\_MANIFEST\_RESOURCE\_ID RT\_MANIFEST "YourApp.exe.manifest"

    Alternativ können Sie eine separate Manifestdatei im gleichen Verzeichnis wie die ausführbare Datei Ihrer Anwendung platzieren. Das Betriebssystem lädt das Manifest zuerst aus dem Dateisystem, und überprüft dann den Ressourcenabschnitt der ausführbaren Datei. Die Dateisystemversion hat Vorrang.

  6. Freigegebene Assemblys sollten mithilfe der Windows Installer Version 2.0 installiert werden. Erstellen Sie ein Windows Installer-Paket, wie in "Wie ich Win32-Assemblys für die parallele Freigabe auf Windows XP installieren".

  7. Private Assemblys können mithilfe der Windows Installer Version 2.0 installiert werden. Erstellen Sie ein Windows Installer-Paket, wie in wie ich Win32-Assemblys für die private Verwendung einer Anwendung auf Windows XP installieren?. Sie können auch ein beliebiges anderes Installationsprogramm verwenden, um eine private Assembly und sein Manifest in denselben Ordner wie die ausführbare Datei der Anwendung zu kopieren.

  8. Testen Sie Ihre Anwendung, um die Ergebnisse sicherzustellen. Beachten Sie, dass Der Testcomputer nicht über die nebenseitige Assembly registriert sein sollte.

  9. Stellen Sie Ihre Anwendung bereit oder aktualisieren Sie als Windows Installer-Paket.

Beispielanwendungsmanifest

Nachfolgend sehen Sie ein Beispiel für ein Anwendungsmanifest:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
  <assemblyIdentity type="win32" name="Microsoft.Windows.mysampleapp" version="1.0.0.0" processorArchitecture="x86"/>
  <dependency>
    <dependentAssembly>
      <assemblyIdentity type="win32" name="Microsoft.Windows.SampleAssembly" version="6.0.0.0" processorArchitecture="x86" publicKeyToken="a5aaf5ba15723d5"/>
    </dependentAssembly>
  </dependency>
  <dependency>
    <dependentAssembly>
      <assemblyIdentity type="win32" name="Microsoft.Tools.MyPrivateDll" version="2.5.0.0" processorArchitecture="x86"/>
    </dependentAssembly>
  </dependency>
</assembly>