Auswählen einer Bereitstellungsmethode

Es wird empfohlen, Windows Installer für die Bereitstellung zu verwenden. Windows Installer unterstützt die Installation, Reparatur und Deinstallation, und es unterstützt das atomische Aktualisieren von Anwendungsdateien, Abhängigkeiten und Registrierungseinträgen. Wenn Ihre Visual C++-Anwendung nicht eigenständig ist und mithilfe eines Kopierbefehls bereitgestellt werden kann, verwenden Sie Windows Installer.

Hinweis

Obwohl die ClickOnce-Bereitstellung für native Visual C++-Anwendungen in Visual Studio möglich ist, sind dafür zusätzliche Schritte erforderlich. Weitere Informationen finden Sie unter ClickOnce-Bereitstellung für Visual C++-Anwendungen.

Visual C++-Bibliotheken sind freigegebene DLLs

Da Visual C++-Bibliotheken vom Visual Studio-Installationsprogramm im %windir%\system32\ Verzeichnis installiert werden, wird sie beim Entwickeln einer Visual C++-Anwendung, die von ihnen abhängt, wie erwartet ausgeführt. Die meisten Computer haben Visual Studio jedoch nicht installiert. Um die Anwendung auf diesen Computern bereitzustellen, sollten Sie sicherstellen, dass die Bibliotheken zusammen mit Ihrer Anwendung installiert werden.

Verteilbare Visual C++-Bibliotheken

In Ihren Bereitstellungen können Sie jede Version einer Visual C++-Bibliothek weiter verteilen, die für die Weiterverteilung lizenziert ist. Hierfür gibt es drei Möglichkeiten, sie bereitzustellen:

  • Zentrale Bereitstellung mithilfe von Redistributable-Paketen in Visual C++ Dieser Ansatz ist der, den wir empfehlen. Ein Visual C++-Redistributable-Paket ist eine ausführbare Datei, die Visual C++-Bibliotheken als freigegebene DLLs installiert %windir%\system32\. (Die Installation in diesem Ordner erfordert Administratorrechte.) Sie können einen Bootstrapper, ein Skript oder ein Setupprogramm erstellen, das das Redistributable-Paket ausführt, bevor Sie Ihre Anwendung auf dem Zielcomputer installieren. Redistributable packages are available for the x86, x64, ARM64, and ARM platforms. Weitere Informationen dazu, wo Sie die Paketdateien finden, finden Sie unter "Suchen der weiterverteilbaren Dateien". Informationen zur Verwendung eines Redistributable-Pakets finden Sie unter Walkthrough: Deploying a Visual C++ Application By Using the Visual C++ Redistributable Package.

  • Zentrale Bereitstellung mithilfe von Seriendruckmodulen. Diese Methode ist veraltet, da auf diese Weise bereitgestellte Bibliotheken nicht automatisch von Windows Update aktualisiert werden können. Sie können Zusammenführungsmodule verwenden, um eine bestimmte Visual C++-Bibliothek als freigegebene DLL in %windir%\system32\zu installieren. (Für die Installation in diesem Ordner sind Administratorrechte erforderlich.) Seriendruckmodule werden Teil der .msi Installer-Datei für Ihre Anwendung. Da sie veraltet sind, sind Visual C++ Redistributable Merge Modules eine optionale, installierbare Komponente in Visual Studio 2022 und 2019. Sie werden standardmäßig in Visual Studio 2017 und 2015 installiert. Weitere Informationen finden Sie unter Wo finden Sie Zusammenführungsmoduldateien.

  • Lokale Bereitstellung. Die lokale Bereitstellung wird in den meisten Situationen nicht empfohlen. In der lokalen Bereitstellung kopieren Sie bestimmte Visual C++-DLLs aus Ihrer Visual Studio-Installation ( in der Regel in \%VCINSTALLDIR%Redist\MSVC\<version>\<target-platform>\) und installieren sie auf Zielcomputern im selben Ordner wie die ausführbare Anwendung. Sie können diese Bereitstellungsmethode verwenden, um die Installation von Benutzern zu aktivieren, die nicht über Administratorrechte verfügen. Oder für Anwendungen, die von einem Minilaufwerk oder einer Netzwerkfreigabe ausgeführt werden können.

Wenn eine Bereitstellung Redistributable Merge-Module verwendet, muss der Benutzer, der die App installiert, über Administratorrechte verfügen. Andernfalls werden die Visual C++-DLLs nicht installiert, und die Anwendung wird möglicherweise nicht ausgeführt. Anwendungsinstallationsprogramme, die die Installation pro Benutzer zulassen, installieren die Bibliotheken an einem freigegebenen Speicherort, der sich auf alle Benutzer des Systems auswirkt. Sie können die lokale Bereitstellung verwenden, um die erforderlichen Visual C++-DLLs im Verzeichnis der Anwendung eines bestimmten Benutzers zu installieren. Dieser Ansatz wirkt sich nicht auf andere Benutzer aus oder erfordert Administratorrechte. Da es Probleme mit der Dienstbarkeit erzeugen kann, wird die lokale Bereitstellung von Visual C++ Redistributable DLLs nicht empfohlen.

Die falsche Bereitstellung von Visual C++-Bibliotheken kann Laufzeitfehler während der Ausführung einer Anwendung, die diese Bibliotheken benötigt, verursachen. Wenn das Betriebssystem die Anwendung lädt, verwendet es die in LoadLibraryExbeschriebene Suchreihenfolge.

Dynamische Verknüpfungen sind besser als statische Verknüpfungen

Es wird empfohlen, statisches Verknüpfen zu vermeiden, wenn Sie Visual C++-Bibliotheken verteilen. Obwohl statisches Verknüpfen die Anwendungsleistung nie deutlich verbessert, wird dadurch fast immer die Wartung teurer. Betrachten Sie beispielsweise eine statisch verknüpfte Anwendung mit einer Bibliothek, die mit Sicherheitsverbesserungen aktualisiert wurde. Die Anwendung kann nur profitieren, wenn sie neu kompiliert und erneut bereitgestellt wird. Stattdessen wird empfohlen, Ihre Anwendungen dynamisch mit den Bibliotheken zu verknüpfen, von denen sie abhängig sind. Anschließend können die Bibliotheken überall aktualisiert werden, wo sie bereitgestellt werden.

Siehe auch

Bereitstellen von Desktopanwendungen
ClickOnce-Sicherheit und -Bereitstellung
Bereitstellungsbeispiele