Teilen über


Bereitstellung in Microsoft C++

Die Installation einer Anwendung auf einem anderen Computer als Ihrem Entwicklungscomputer wird als Bereitstellung bezeichnet. Wenn Sie eine Microsoft C++-Anwendung auf einem anderen Computer bereitstellen, müssen Sie sowohl die Anwendung als auch alle Bibliotheksdateien installieren, von denen sie abhängig sind. Visual Studio ermöglicht drei Möglichkeiten, die Microsoft C++-Bibliotheken zusammen mit Ihrer Anwendung bereitzustellen: zentrale Bereitstellung, lokale Bereitstellung und statische Verknüpfung. Die zentrale Bereitstellung platziert die Bibliotheksdateien unter dem Windows-Verzeichnis, in dem alle Anwendungen automatisch darauf zugreifen können. Bei der lokalen Bereitstellung werden die Bibliotheksdateien im selben Verzeichnis wie die Anwendung gespeichert. Sie müssen alle lokal bereitgestellten Bibliotheken manuell erneut bereitstellen, um diese zu aktualisieren. Bei der statischen Verknüpfung wird der Bibliothekscode an Ihre Anwendung gebunden. Sie müssen Ihre Anwendung neu kompilieren und erneut bereitstellen, um alle Aktualisierungen der Bibliotheken zu nutzen, wenn Sie statische Verknüpfungen verwenden.

In Visual Studio 2015 wurde die Microsoft C-Laufzeitbibliothekibliothek in versionsspezifische lokale Bibliothekskomponenten umgestaltet. Außerdem gibt es eine neue universelle C-Laufzeitbibliothek, die jetzt in Windows enthalten ist. Weitere Informationen zur Bereitstellung der universellen CRT finden Sie unter Universal CRT deployment (Bereitstellung der universellen CRT).

Zentrale Bereitstellung

In der Windows\System32 zentralen Bereitstellung werden Bibliotheks-DLL-Dateien im Verzeichnis oder für 32-Bit-Bibliotheksdateien auf x64-Systemen, dem Windows\SysWow64 Verzeichnis installiert. Zentral bereitgestellte Bibliotheksdateien sind für andere Anwendungen verfügbar.

Um Microsoft C++-Bibliotheken zentral bereitzustellen, können Sie eine der beiden folgenden Quellen für die Zu installierenden Dateien verwenden:

  • Verteilbare Paketdateien . Diese Dateien sind eigenständige ausführbare Befehlszeilendateien, die alle Visual C++-Redistributable-Bibliotheken in komprimierter Form enthalten. Die neuesten Redistributable-Pakete sind über Microsoft Visual C++ Redistributable Latest Supported Downloads verfügbar. Wenn Sie die redistributable-Pakete für die zentrale Bereitstellung verwenden, kann Windows Update die Bibliotheken unabhängig voneinander bedienen.

  • Weiterverteilbare Zusammenführungsmodule (.msm Dateien), die Sie in die Windows Installer-Datei (.msi) Ihrer Anwendung aufnehmen können. Diese Methode ist veraltet, da auf diese Weise bereitgestellte Bibliotheken nicht automatisch von Windows Update aktualisiert werden können. Weitere Informationen finden Sie unter Verteilen mit Mergemodulen.

Eine verteilbare Paketdatei installiert alle Microsoft C++-Bibliotheken für eine bestimmte Systemarchitektur. Wenn Ihre Anwendung beispielsweise für x64 erstellt wurde, können Sie das vcredist_x64.exe Paket verwenden, um alle von Ihrer Anwendung verwendeten Microsoft C++-Bibliotheken zu installieren. Sie können das Anwendungsinstallationsprogramm so programmieren, dass das Paket als Voraussetzung ausgeführt wird, bevor Sie die Anwendung installieren.

Die zentrale Bereitstellung mithilfe eines Redistributable-Pakets ermöglicht es Windows Update, die Microsoft C++-Bibliotheken automatisch zu aktualisieren. Für fortgesetzte Sicherheit und Funktionalität empfehlen wir, die Bibliotheks-DLLs in Ihrer Anwendung anstelle statischer Bibliotheken zu verwenden und Redistributable-Pakete und zentrale Bereitstellung anstelle der lokalen Bereitstellung zu verwenden.

Lokale Bereitstellung

Bei der lokalen Bereitstellung werden Bibliotheksdateien im Anwendungsordner zusammen mit der ausführbaren Datei installiert. Verschiedene Versionen von Visual C++ Redistributable-Bibliotheken können im selben Ordner installiert werden, da der Dateiname jeder Version die Versionsnummer enthält. Beispielsweise lautet msvcp120.dllVersion 12 der C++-Laufzeitbibliothek , und Version 14 lautet msvcp140.dll.

Erweiterungen für eine Bibliothek können über mehrere zusätzliche DLLs verteilt werden, die als Punktbibliotheken bezeichnet werden. Beispielsweise wurde einige Funktionen in der Standardbibliothek hinzugefügt, die in Visual Studio 2017, Version 15.6, veröffentlicht wurde msvcp140_1.dll, um die ABI-Kompatibilität msvcp140.dllzu erhalten. Wenn Sie Visual Studio 2017, Version 15.6 (Toolset 14.13) oder höher verwenden, müssen Sie diese Punktbibliotheken und die Hauptbibliothek möglicherweise lokal bereitstellen. Diese separaten Punktbibliotheken werden schließlich der Basisbibliothek hinzugefügt, wenn sich die ABI ändert.

Da Microsoft lokal bereitgestellte Microsoft C++-Bibliotheken nicht automatisch aktualisieren kann, wird die lokale Bereitstellung dieser Bibliotheken nicht empfohlen. Wenn Sie die lokale Bereitstellung der redistributable-Bibliotheken verwenden möchten, empfehlen wir, ihre eigene Methode zum automatischen Aktualisieren der lokal bereitgestellten Bibliotheken zu implementieren.

Statische Verknüpfung

Zusätzlich zu den dynamisch verknüpften Bibliotheken stellt Visual Studio die meisten Bibliotheken als statische Bibliotheken bereit. Sie können eine statische Bibliothek statisch mit Ihrer Anwendung verknüpfen. Das bedeutet, dass der Objektcode der Bibliothek direkt in der Anwendung verknüpft wird. Statische Verknüpfung erstellt eine einzelne Binärdatei ohne DLL-Abhängigkeit, sodass Sie die Microsoft C++-Bibliotheksdateien nicht separat bereitstellen müssen. Wir empfehlen diesen Ansatz jedoch nicht, da statisch verknüpfte Bibliotheken nicht aktualisiert werden können. Wenn Sie eine verknüpfte Bibliothek aktualisieren möchten, wenn Sie statische Verknüpfungen verwenden, müssen Sie die Anwendung erneut kompilieren und erneut bereitstellen.

Behandeln von Problemen bei der Bereitstellung

Die Ladereihenfolge von Microsoft C++-Bibliotheken ist systemabhängig. Um Ladeprobleme zu diagnostizieren, verwenden depends.exe oder where.exe. Weitere Informationen finden Sie unter Suchreihenfolge der Dynamic Link Library (Windows).For more information, see Dynamic-link library search order (Windows)

Siehe auch

Bereitstellen von Desktopanwendungen
Universelle CRT-Bereitstellung