Verteilen von Komponenten mithilfe von Seriendruckmodulen

Wichtig

In Visual Studio 2019 und höher sind Zusammenführungsmodule für Visual C++ Redistributable-Dateien veraltet. Es wird nicht empfohlen, sie für die Anwendungsbereitstellung zu verwenden. Redistributables, die mit Zusammenführungsmodulen installiert sind, können von Windows Update nicht aktualisiert werden, da der Erkennungsmechanismus von der Kenntnis der Details des Installationspakets abhängt. Die Redistributable-Pakete von Visual C++ sind für jede Version bekannt, aber Pakete, die MSMs verwenden, werden vom Benutzer generiert. Microsoft kann die Details von vom Benutzer generierten Paketen nicht kennen. Stattdessen wird empfohlen, die zentrale Bereitstellung des Redistributable-Pakets von Visual C++ zu verwenden. Die zentrale Bereitstellung installiert die redistributable-Dateien im Windows-Ordner %SYSTEMROOT%\system32\ für die Verwendung durch alle Anwendungen und Benutzer. Die zentrale Bereitstellung durch ein Redistributable-Paket ermöglicht es Microsoft, Bibliotheksdateien unabhängig voneinander zu serviceieren. Und eine Deinstallation Ihrer App kann andere Anwendungen, die auch die zentrale Bereitstellung verwenden, nicht unterbrechen. Wenn Sie ein Redistributable-Paket für die zentrale Bereitstellung verwenden, sind Sie nicht für die Nachverfolgung und Aktualisierung der Laufzeitbibliotheken im Rahmen Ihrer Anwendung Standard tenance verantwortlich: Der Microsoft Update-Dienst aktualisiert diese Bibliotheken für Sie. Andernfalls müssen Sie ein Update für die Laufzeitbibliotheksdateien aktualisieren und erneut bereitstellen .msi . Ihre App kann anfällig für Fehler oder Sicherheitsprobleme sein, bis Sie dies tun.

Visual Studio enthält Zusammenführungsmodule (.msm Dateien) für jede Visual C++-Komponente, die für die Umverteilung mit einer Anwendung lizenziert ist. Es gibt separate Versionen der Seriendruckmodule für jede Zielplattform. Wenn ein Seriendruckmodul in eine Windows Installer-Setupdatei kompiliert wird, ermöglicht es die Bereitstellung von Visual C++ Redistributable-Dateien für diese bestimmte Plattform. Sie können keine Zusammenführungsmodule für verschiedene Versionen derselben DLL in einem Installationsprogramm einschließen. Geben Sie in der Installationsdatei an, dass die Zusammenführungsmodule voraussetzungen für Ihre Anwendung sind.

Sie können Zusammenführungsmodule entweder für die zentrale Bereitstellung oder lokale Bereitstellung verwenden. Benutzer können zentral bereitgestellte Dateien nur installieren, wenn sie über Administratorrechte verfügen. Die lokale Bereitstellung kann es einem Nichtadministrator ermöglichen, Ihre App zu installieren und auszuführen, aber zu Lasten der unabhängigen Dienstbarkeit.

Der Installationsdienst meldet einen Fehler, wenn Sie versuchen, eine zentrale Bereitstellung älterer Zusammenführungsmodule über neuere vorhandene Bibliotheken durchzuführen. Sie sollten das Installationsprogramm so schreiben, dass dieser Fehler ordnungsgemäß behandelt wird und keine Fehlermeldung angezeigt wird. Ihr Code kann trotz dieses Fehlers weiterhin bereitgestellt und erfolgreich ausgeführt werden. Weitere Informationen finden Sie unter C++-Binärkompatibilität zwischen Visual Studio-Versionen.

Wenn Sie Ihren Code nur als .msi Installationsprogramm bereitstellen, empfehlen wir, die Seriendruckmodule nicht in das Installationsprogramm aufzunehmen. Melden Sie dem Benutzer stattdessen einen Fehler, wenn die erforderlichen redistributable-Bibliotheken nicht gefunden werden. Fügen Sie im Dialogfeld "Fehler" Anweisungen zum Suchen und Installieren des neuesten Redistributable-Pakets hinzu. Weitere Informationen und Links zu Redistributable-Paketen finden Sie unter den neuesten unterstützten Visual C++-Downloads.

Die neuesten redistributable packages and merge modules are compatible with code built using Visual Studio 2015 and later. Code, der von Visual Studio-Versionen vor 2015 erstellt wurde, erfordert ein separates Redistributable-Paket.

Verwendung von Zusammenführungsmodulen

Zusammenführungsmodule sind nur unter begrenzten Umständen geeignet:

  • Sie können ein separates Redistributable-Paket aus Richtliniengründen nicht installieren oder erfordern,
  • Ihr Code erfordert eine bestimmte, fehlerkompatible Version der Bibliotheken,
  • Ihr Code zielt nur auf eine Plattform ab, und Sie haben keine Abhängigkeiten von mehr als einer Version der DLLs,
  • Sie beabsichtigen, Den bereitgestellt Standard en Code regelmäßig zu bedienen, sodass die Bibliotheken auf dem neuesten Stand sind.

Wenn Sie Zusammenführungsmodule verwenden, müssen Sie Ihre Anwendung mit Bibliotheksupdates nachverfolgen und regelmäßig verwenden. Andernfalls erzwingen Sie ihren Clients schließlich, zwischen dem Ausführen des Codes oder der erneuten Standard Sicherheit zu entscheiden.

Wo finden Sie Zusammenführungsmoduldateien

In Visual Studio 2022 und 2019 sind Zusammenführungsmoduldateien Teil einer optionalen installierbaren Komponente namens C++<-Version> Redistributable MSMs im Visual Studio-Installer. Die Zusammenführungsmodule werden standardmäßig als Teil einer C++-Installation in Visual Studio 2017 und Visual Studio 2015 installiert. Wenn Sie in Visual Studio 2022 installiert sind, finden Sie die Zusammenführungsmodule in Visual C++ Redistributable in %VCINSTALLDIR%Redist\MSVC\v143\MergeModules. In der neuesten Version von Visual Studio 2019 befinden sich die Seriendruckmodule in %VCINSTALLDIR%Redist\MSVC\v142\MergeModules. In Visual Studio 2019 und Visual Studio 2017 befinden sie sich auch in %VCToolsRedistDir%MergeModules. In Visual Studio 2015 befinden sie sich in Program Files [(x86)]\Common Files\Merge Modules. Weitere Informationen und ein Link zu einer Liste von Redistributable Merge Modules finden Sie unter Redistributing Visual C++-Dateien.

Siehe auch

Verteilen von Visual C++-Dateien