Manifestgenerierung in Visual Studio

Die Generierung einer Manifestdatei für ein bestimmtes Projekt kann über das Projektdialogfeld Eigenschaftenseiten gesteuert werden. Klicken Sie auf der Registerkarte Konfigurationseigenschaften auf Linker, Manifestdatei und dann Manifest generieren. Die Projekteigenschaften eines neuen Projekts sind standardmäßig so festgelegt, dass eine Manifestdatei generiert wird. Es ist jedoch möglich, die Generierung des Manifests für ein Projekt mithilfe der Eigenschaft Manifest generieren des Projekts zu deaktivieren. Wenn diese Eigenschaft auf Ja festgelegt ist, wird das Manifest für dieses Projekt generiert. Andernfalls ignoriert der Linker beim Auflösen von Abhängigkeiten des Anwendungscodes Assemblyinformationen und generiert kein Manifest.

Das Buildsystem in Visual Studio ermöglicht, dass das Manifest in die endgültige binäre Anwendungsdatei eingebettet oder als externe Datei generiert wird. Dieses Verhalten wird durch die Option Manifest einbetten im Dialogfeld Projekteigenschaften gesteuert. Öffnen Sie den Knoten Manifesttool, und klicken Sie auf Eingabe und Ausgabe, um diese Eigenschaft festzulegen. Wenn das Manifest nicht eingebettet ist, wird es als externe Datei generiert und im gleichen Verzeichnis wie die endgültige Binärdatei gespeichert. Wenn das Manifest eingebettet ist, bettet Visual Studio die endgültigen Manifeste mithilfe des folgenden Prozesses ein:

  1. Nach der Kompilierung des Quellcodes in Objektdateien sammelt der Linker abhängige Assemblyinformationen. Beim Verknüpfen der endgültigen Binärdatei generiert der Linker ein Übergangsmanifest, das später zum Generieren des endgültigen Manifests verwendet wird.

  2. Nachdem das Übergangsmanifest erstellt und die Verknüpfung abgeschlossen ist, wird das Manifesttool ausgeführt, um ein endgültiges Manifest zusammenzuführen und es als externe Datei zu speichern.

  3. Das Buildsystem des Projekts erkennt dann, ob das vom Manifesttool generierte Manifest andere Informationen enthält als das bereits in die Binärdatei eingebettete Manifest.

  4. Wenn sich das in die Binärdatei eingebettete Manifest von dem durch das Manifesttool generierte Manifest unterscheidet oder die Binärdatei kein eingebettetes Manifest enthält, ruft Visual Studio den Linker ein weiteres Mal auf, um die externe Manifestdatei als Ressource in die Binärdatei einzubetten.

  5. Wenn das in die Binärdatei eingebettete Manifest mit dem Manifest übereinstimmt, das durch das Manifesttool generiert wurde, fährt der Build mit den nächsten Buildschritten fort.

Das Manifest ist als Textressource in die endgültige Binärdatei eingebettet und kann angezeigt werden, indem die endgültige Binärdatei als Datei in Visual Studio geöffnet wird. Befolgen Sie die unter Grundlegendes zu den Abhängigkeiten einer Visual C++-Anwendung beschriebenen Schritte oder die Empfehlungen unter Problembehandlung bei isolierten Anwendungen und parallelen Assemblys (C/C++), um sicherzustellen, dass das Manifest auf die richtigen Bibliotheken verweist.

Siehe auch

Manifestgenerierung für C/C++-Programme