Ermitteln der zu verteilenden DLLs

Beim Erstellen einer Anwendung, die von Visual Studio bereitgestellte Bibliotheks-DLLs verwendet, müssen Benutzer der Anwendung auch diese DLLs auf ihren Computern haben, damit die Anwendung ausgeführt werden kann. Da die meisten Benutzer visual Studio wahrscheinlich nicht installiert haben, müssen Sie diese DLLs für sie bereitstellen. Visual Studio stellt diese DLLs als Redistributable-Dateien zur Verfügung, die Sie in Ihr Anwendungsinstallationsprogramm aufnehmen können.

Um die redistributable DLLs einfacher in Ihr Installationsprogramm einzuschließen, stehen sie als eigenständige Redistributable-Pakete zur Verfügung. Diese Pakete sind architekturspezifische ausführbare Dateien, die die zentrale Bereitstellung verwenden, um die redistributable-Dateien auf dem Computer eines Benutzers zu installieren. Installiert beispielsweise vc_redist.x86.exe die 32-Bit-Bibliotheken für x86- und x64-Computer, vc_redist.x64.exe installiert die 64-Bit-Bibliotheken für x64-Computer und vcredist.ARM64.exe installiert die Bibliotheken für ARM- und ARM64-Computer. Die zentrale Bereitstellung wird empfohlen, da Microsoft den Windows Update-Dienst verwenden kann, um diese Bibliotheken unabhängig zu aktualisieren. Zusätzlich zur Kopie in Ihrer Visual Studio-Installation stehen die aktuellen Redistributable-Pakete zum Download zur Verfügung. Links zu den neuesten unterstützten Redistributable-Paketen für aktuelle und ältere Toolsets finden Sie unter Den neuesten unterstützten Visual C++-Redistributable-Downloads. Bestimmte frühere Versionen der Redistributable-Pakete finden Sie möglicherweise, indem Sie nach "Visual C++ Redistributable Packages" suchen my.visualstudio.com .

Um die redistributable DLLs einfacher in Ihr Installationsprogramm einzuschließen, stehen sie als eigenständige Redistributable-Pakete zur Verfügung. Diese Pakete sind architekturspezifische ausführbare Dateien, die die zentrale Bereitstellung verwenden, um die redistributable-Dateien auf dem Computer eines Benutzers zu installieren. Installiert beispielsweise vcredist_x86.exe die 32-Bit-Bibliotheken für x86- und x64-Computer, vcredist_x64.exe installiert die 64-Bit-Bibliotheken für x64-Computer und vcredist_ARM.exe installiert die Bibliotheken für ARM-Computer. Die zentrale Bereitstellung wird empfohlen, da Microsoft den Windows Update-Dienst verwenden kann, um diese Bibliotheken unabhängig zu aktualisieren. Zusätzlich zur Kopie in Ihrer Visual Studio-Installation stehen die aktuellen Redistributable-Pakete zum Download zur Verfügung. Links zu den neuesten unterstützten Redistributable-Paketen für aktuelle und ältere Toolsets finden Sie unter Den neuesten unterstützten Visual C++-Downloads. Bestimmte frühere Versionen der Redistributable-Pakete finden Sie möglicherweise, indem Sie nach "Visual C++ Redistributable Packages" suchen my.visualstudio.com .

Wir unterstützen nur die Verwendung eines Redistributable-Pakets, das mit ihrer Toolsetversion identisch oder neuer ist. Die Hauptversionsnummer des bereitgestellten Redistributable-Pakets muss mit der Version des Visual Studio-Toolsets übereinstimmen, das zum Erstellen Der Anwendung verwendet wird, und die Nebenversion muss identisch oder höher sein. Visual Studio 2022, 2019, 2017 und 2015 verfügen alle über kompatible Toolsetversionsnummern. Für diese Versionen können alle neueren Visual Studio Redistributable-Dateien von Apps verwendet werden, die von einem Toolset aus einer älteren Version erstellt wurden. Visual Studio 2022 Redistributable files may be used by apps built by the Visual Studio 2017 or 2015 toolset. Obwohl sie kompatibel sind, unterstützen wir die Verwendung älterer redistributable-Dateien in Apps, die mit einem neueren Toolset erstellt wurden. Beispielsweise wird die Verwendung der 2017 Redistributable-Dateien in Apps, die mit dem Toolset 2019 erstellt wurden, nicht unterstützt.

Es ist auch möglich, die redistributable DLLs in Seriendruckmodule in Das Installationsprogramm aufzunehmen. Diese Methode ist jetzt veraltet, da auf diese Weise bereitgestellte Bibliotheken nicht automatisch von Windows Update aktualisiert werden können. Weiterverteilbare Zusammenführungsmodule oder Microsoft Installer-Module (.msmDateien) sind optionale Komponenten, die im Visual Studio-Installer verfügbar sind. Bei der Installation finden Sie Die Zusammenführungsmodule für die Redistributable DLLs in Ihrem Visual Studio-Installationsverzeichnis unter %VCToolsRedistDir%\MergeModules\. In Visual Studio 2015 und früheren Versionen von Visual Studio befinden sich diese Dateien in Ihrem Verzeichnis "Programme" oder "Programme" (x86) in einem Common Files\Merge Modules Unterverzeichnis. Weitere Informationen zur Verwendung dieser Dateien finden Sie unter Redistributing components by using Merge Modules.

Die einzelnen redistributable DLLs sind auch in Ihrer Installation von Visual Studio enthalten. Standardmäßig werden sie in den %VCToolsRedistDir%\[architecture]\Microsoft.[toolset].[library] Ordnern visual installiert, in denen [architecture] die Zielarchitektur dargestellt wird, [toolset] die Toolsetversion und [library] die Bibliothek darstellt.

Es ist auch möglich, die redistributable DLLs in Seriendruckmodule in Das Installationsprogramm aufzunehmen. Diese Methode ist jetzt veraltet, da auf diese Weise bereitgestellte Bibliotheken nicht automatisch von Windows Update aktualisiert werden können. Redistributable merge modules for the Redistributable DLLs are found in your Program Files or Program Files (x86) directory in a Common Files\Merge Modules subdirectory. Weitere Informationen zur Verwendung dieser Dateien finden Sie unter Redistributing components by using Merge Modules.

Die einzelnen redistributable DLLs sind auch in Ihrer Installation von Visual Studio enthalten. Standardmäßig werden sie im Visual Studio 2015-Installationsverzeichnis in den redist\debug_nonredist\[architecture]\Microsoft.[toolset].[library] Ordnern installiert, in denen [architecture] die Zielarchitektur dargestellt ist, [toolset] die Toolsetversion [library] und die Debugbibliothek mit den Debug-DLLs.

Verwenden Sie die neueste Version einer Bibliotheks-DLL-Datei, eines Redistributable-Pakets oder eines Seriendruckmoduls, das in diesen Verzeichnissen zu finden ist. Sie können diese Bibliotheken für die lokale Bereitstellung verwenden, indem Sie diese im selben Verzeichnis wie Ihre Anwendung installieren. Die lokale Bereitstellung wird nicht empfohlen, da Sie bei dieser selbst dafür verantwortlich sind, Updates für die bereitgestellte Anwendung zu liefern. Die zentrale Bereitstellung mithilfe der Redistributable-Pakete wird bevorzugt.

Um zu bestimmen, welche DLLs mit der Anwendung verteilt werden müssen, sammeln Sie eine Liste der DLLs, von denen die Anwendung abhängig ist. Diese DLLs werden normalerweise als Importbibliothekseingaben für den Linker aufgeführt. Bestimmte Bibliotheken wie „vcruntime“ und die universelle C-Laufzeitbibliothek (UCRT) sind standardmäßig enthalten. Wenn Ihre App oder eine ihrer Abhängigkeiten zum dynamischen Laden einer DLL verwendet LoadLibrary wird, wird diese DLL möglicherweise nicht in den Eingaben für den Linker aufgeführt. Eine Möglichkeit, die Liste der dynamisch geladenen DLLs zu erfassen, besteht darin, Abhängigkeits-Walker (depends.exe) in Ihrer App auszuführen, wie unter "Grundlegendes zu den Abhängigkeiten einer Visual C++-Anwendung" beschrieben. Dieses Tool ist leider veraltet und gibt möglicherweise die Meldung aus, dass bestimmte DLLs nicht gefunden werden können.

Wenn Sie über die Liste der Abhängigkeiten verfügen, vergleichen Sie sie mit der Liste, die in der Redist.txt Datei im Installationsverzeichnis von Microsoft Visual Studio verknüpft ist. Oder auf die "REDIST-Liste" von redistributable DLLs, auf die im Abschnitt "Distributionable Code Files" der Microsoft-Software-Lizenzbedingungen für Ihre Kopie von Visual Studio verwiesen wird. Informationen zu Visual Studio 2022 finden Sie unter "Verteilungscode für Visual Studio 2022". Informationen zu Visual Studio 2019 finden Sie unter "Distributionable Code" für Visual Studio 2019. Für Visual Studio 2017 finden Sie weitere Informationen unter Verteilbarer Code für Microsoft Visual Studio 2017 (einschließlich Hilfsprogramme, Erweiterbarkeit und BuildServer-Dateien). Für Visual Studio 2015 finden Sie weitere Informationen unter Verteilbarer Code für Microsoft Visual Studio 2015 und Microsoft Visual Studio 2015 SDK (einschließlich Hilfsprogramme und BuildServer-Dateien). Für Visual Studio 2013 finden Sie die Liste online unter Verteilbarer Code für Microsoft Visual Studio 2013 und Microsoft Visual Studio 2013 SDK.

In Visual Studio-Versionen vor Visual Studio 2015 wurde die C-Runtime-Bibliothek (CRT) als Redistributable DLL in msvc[version].dll. In Visual Studio 2015 wurden die Funktionen im CRT in vcruntime und UCRT umgestaltet. Die UCRT ist jetzt eine Systemkomponente in Windows 10 und höher, die von Windows Update verwaltet wird. Es ist auf allen Windows 10- und höher-Betriebssystemen verfügbar. Wenn Sie Anwendungen für frühere Betriebssysteme bereitstellen möchten, müssen Sie die UCRT möglicherweise ebenfalls verteilen. Eine frühe Version der UCRT ist in den Redistributable-Dateien von Visual Studio enthalten. Diese Version ist nur auf Betriebssystemen vor Windows 10 installiert, und nur, wenn keine Version des UCRT bereits installiert ist. Eine installierbare Version der UCRT für ältere Systeme finden Sie im Microsoft Download Center unter Windows 10 Universal C Runtime (Windows 10: Universelle C-Runtime) als Updatepaket für Microsoft-Systeme.

Sie können nicht alle Dateien, die in Visual Studio enthalten sind, neu verteilen. Sie dürfen nur die Dateien weiterverwenden, die in Redist.txt oder in der Onlineliste "REDIST" angegeben sind. Sie können auch keine Debugversionen Ihrer Anwendungen weiterverteilen, oder die Debugversionen von DLLs oder Bibliotheken, die von Microsoft bereitgestellt werden. Sie dürfen nur Debugdateien und Bibliotheken auf Computer kopieren, die Sie zum Testen verwenden. Weitere Informationen finden Sie unter Auswählen einer Bereitstellungsmethode.

In der folgenden Tabelle werden einige der Visual C++-DLLs beschrieben, von denen Ihre Anwendung möglicherweise abhängig ist.

Visual C++-Bibliothek Beschreibung Gilt für:
vcruntime[version].dll Laufzeitbibliothek für nativen Code. Anwendungen, die die normalen C- und C++-Sprachdienste zum Starten und Beenden verwenden.
vccorlib[version].dll Laufzeitbibliothek für verwalteten Code. Anwendungen, die die C++-Sprachdienste für verwalteten Code verwenden.
msvcp[version].dll und msvcp[version_dotnumber].dll C++-Standardbibliothek für nativen Code. Anwendungen, die die C++-Standardbibliothek verwenden.
concrt[version].dll Concurrency Runtime-Bibliothek für nativen Code. Anwendungen, die Concurrency Runtime verwenden.
mfc[version].dll Microsoft Foundation Class-Bibliothek (MFC-Bibliothek). Anwendungen, die die MFC-Bibliothek verwenden.
mfc[version][language].dll Microsoft Foundation Classes-Bibliotheksressourcen (MFC). Anwendungen, die bestimmte Sprachressourcen für MFC verwenden.
mfc[version]u.dll MFC-Bibliothek mit Unicode-Unterstützung. Anwendungen, die die MFC-Bibliothek verwenden und Unicode-Unterstützung erfordern.
mfcmifc80.dll MFC-Bibliothek für verwaltete Schnittstellen. Anwendungen, die die MFC-Bibliothek mit Windows Forms-Steuerelementen verwenden.
mfcm[version].dll Verwaltete MFC-Bibliothek. Anwendungen, die die MFC-Bibliothek mit Windows Forms-Steuerelementen verwenden.
mfcm[version]u.dll Verwaltete MFC-Bibliothek mit Unicode-Unterstützung. Anwendungen, die die MFC-Bibliothek mit Windows Forms-Steuerelementen verwenden sowie Unicode-Unterstützung erfordern.
vcamp[version].dll AMP-Bibliothek für nativen Code. Anwendungen, die den Code der AMP-Bibliothek für C++ verwenden.
vcomp[version].dll OpenMP-Bibliothek für nativen Code. Anwendungen, die den Code der OpenMP-Bibliothek für C++ verwenden.

Hinweis

Sie müssen nicht mehr die Active Template Library als eine separate DLL weiterverteilen. Die Funktionalität wurde in Header und eine statische Bibliothek verschoben.

Weitere Informationen zum Verteilen dieser DLLs mit Ihrer Anwendung finden Sie unter Redistributing Visual C++-Dateien. Beispiele finden Sie unter Bereitstellungsbeispiele.

In der Regel müssen Sie keine System-DLLs neu verteilen, da sie Teil des Betriebssystems sind. Allerdings gelten möglicherweise Ausnahmen, z. B., wenn die Anwendung auf mehreren Versionen von Microsoft-Betriebssystemen ausgeführt wird. In diesem Fall müssen Sie die entsprechenden Lizenzbedingungen lesen. Versuchen Sie außerdem, die System-DLLs über Windows Update, Service Packs oder mithilfe von Redistributable-Paketen abzurufen, die von Microsoft zur Verfügung gestellt werden.

Siehe auch

Auswählen einer Bereitstellungsmethode
Bereitstellen von Desktopanwendungen