vcpkg verfügt über zwei Betriebsmodi: klassischen Modus und Manifestmodus. Für die meisten Benutzer empfehlen wir den Manifestmodus.
Im Manifestmodus werden deklarative JSON-Dateien verwendet, um Metadaten zu Ihrem Projekt oder Paket zu beschreiben. Manifestdateien sind erforderlich, damit der Name vorhanden vcpkg.json ist.
Der Manifestmodus wird verwendet, indem der vcpkg install Befehl ausgeführt wird, während eine Manifestdatei (vcpkg.json) im Arbeitsverzeichnis vorhanden ist. Weitere Informationen zum Installieren von Paketen im Manifestmodus finden Sie weiter.
Alle vcpkg-Ports müssen eine vcpkg.json Datei enthalten, die Metadaten zum installierten Paket beschreibt.
vcpkg verwendet die Metadaten im Paketmanifest für verschiedene Zwecke, z. B. berechnen Abhängigkeitsstrukturen, Suchen nach Paketen nach Name oder Beschreibung, Auflösen von Features usw.
Beispiel für das Paketmanifest
{
"name": "fmt",
"version": "10.1.1",
"description": "Formatting library for C++. It can be used as a safe alternative to printf or as a fast alternative to IOStreams.",
"homepage": "https://github.com/fmtlib/fmt",
"license": "MIT",
"dependencies": [
{
"name": "vcpkg-cmake",
"host": true
},
{
"name": "vcpkg-cmake-config",
"host": true
}
]
}
Manifestdateien in Projekten
Der Hauptzweck der Verwendung einer Manifestdatei in Ihrem Projekt besteht darin, Ihre Abhängigkeiten zu deklarieren. Wenn Sie ein Projektmanifest verwenden, können Sie Versionsbeschränkungen und Außerkraftsetzungen angeben, um bestimmte Versionen Ihrer Abhängigkeiten zu sperren. Dieses Feature ist im klassischen Modus nicht verfügbar.
Um Pakete mit einer Manifestdatei zu installieren, verwenden Sie den vcpkg install Befehl ohne Paketargumente.
Der Befehl muss aus einem Verzeichnis ausgeführt werden, das eine Manifestdatei (vcpkg.json) enthält, oder den Pfad zu einer Manifestdatei, die mithilfe der --x-manifest-root=<path> Option bereitgestellt wird.
Pakete, die im Manifestmodus installiert sind, werden nicht im globalen installed Verzeichnis installiert, wie sie im klassischen Modus ausgeführt werden. Stattdessen erhält jedes Manifest ein eigenes Installationsverzeichnis namens vcpkg_installed; das vcpkg_installed Verzeichnis wird im selben Verzeichnis erstellt, das die Manifestdatei enthält.
Die Verwendung unabhängiger Installationsstrukturen pro Manifest ermöglicht die Trennung von Abhängigkeiten zwischen verschiedenen Projekten. Dadurch wird eine entscheidende Einschränkung des klassischen Modus umgangen, wodurch nur eine Version jedes Ports installiert werden kann.
Im Manifestmodus werden Versionen von Ports pro Projekt getrennt.
Verwenden von Features in Projektmanifesten
Manifestdateien können durch die Verwendung von "Features" additive Gruppen von Funktionen, Verhalten und Abhängigkeiten definieren.
In Ihren Projekten können Sie Features definieren, um Abhängigkeiten zu aktivieren oder zu deaktivieren, die für Teile Ihres Projekts gelten. Wenn Ihr Projekt z. B. mehrere Komponenten enthält, sollten Sie allgemeine Abhängigkeiten in der "dependencies" Liste beibehalten, einige andere jedoch auf ihre jeweiligen Komponenten beschränken.
Um Features Ihres Projekts zu aktivieren, können Sie eine der folgenden Methoden verwenden:
Übergeben Sie die --x-feature Option an Ihren vpckg install Befehl.
Sperren der Versionen für wiederholbare Builds mithilfe der Versionsverwaltung
Zusammenarbeit auf GitHub
Die Quelle für diesen Inhalt finden Sie auf GitHub, wo Sie auch Issues und Pull Requests erstellen und überprüfen können. Weitere Informationen finden Sie in unserem Leitfaden für Mitwirkende.
Feedback zu vcpkg
vcpkg ist ein Open Source-Projekt. Wählen Sie einen Link aus, um Feedback zu geben:
Hier erstellen Sie ein Node.js-Projekt und erfahren, wie Sie in Ihrem Projekt Pakete hinzufügen und Paketabhängigkeiten verwalten. Verwenden Sie die npm-CLI und die Registrierung, um Bibliotheken und Tools Ihren CommonJS-Projekten zur JavaScript-/TypeScript-Webentwicklung mit Visual Studio Code hinzuzufügen.