Delen via


Onderdelen opnieuw distribueren met behulp van samenvoegmodules

Belangrijk

In Visual Studio 2019 en hoger worden samenvoegmodules voor Herdistribueerbare bestanden van Visual C++ afgeschaft. We raden u niet aan deze te gebruiken voor toepassingsimplementatie. Herdistribueerbare modules die zijn geïnstalleerd met behulp van Merge-modules, kunnen niet worden bijgewerkt door Windows Update, omdat het detectiemechanisme afhankelijk is van de details van het installatiepakket. De Visual C++ Redistributable-pakketten staan bekend voor elke release, maar pakketten die MSM's gebruiken, worden door de gebruiker gegenereerd. Microsoft kan de details van door de gebruiker gegenereerde pakketten niet kennen. In plaats daarvan raden we u aan de centrale implementatie van het Visual C++ Redistributable-pakket te gebruiken. Bij centrale implementatie worden de Redistributable-bestanden in de Windows-map %SYSTEMROOT%\system32\ geïnstalleerd voor gebruik door alle toepassingen en gebruikers. Centrale implementatie door een Redistributable-pakket maakt het voor Microsoft mogelijk om runtimebibliotheekbestanden onafhankelijk van elkaar te verwerken. En een verwijdering van uw app kan andere toepassingen die ook gebruikmaken van centrale implementatie niet verbreken. Wanneer u een Redistributable-pakket gebruikt voor centrale implementatie, bent u niet verantwoordelijk voor het bijhouden en bijwerken van de runtimebibliotheken als onderdeel van uw toepassingsonderhoud: de Microsoft Update-service werkt deze bibliotheken voor u bij. Anders moet u voor een update van de runtimebibliotheekbestanden uw .msi-installatieprogramma bijwerken en opnieuw implementeren. Uw app kan kwetsbaar zijn voor bugs of beveiligingsproblemen totdat u dat doet.

Visual Studio bevat samenvoegmodules (.msm bestanden) voor elk Visual C++-onderdeel dat is gelicentieerd voor herdistributie met een toepassing. Er zijn afzonderlijke versies van de samenvoegmodules voor elk doelplatform. Wanneer een samenvoegmodule wordt gecompileerd in een Installatiebestand van Windows Installer, wordt de implementatie van Visual C++ Redistributable-bestanden naar dat specifieke platform mogelijk gemaakt. U kunt geen samenvoegmodules opnemen voor verschillende versies van hetzelfde DLL-bestand in één installatieprogramma. Geef in het installatiebestand van het installatieprogramma op dat de samenvoegmodules vereisten zijn voor uw toepassing.

U kunt samenvoegmodules gebruiken voor centrale implementatie of lokale implementatie. Gebruikers kunnen geen centraal geïmplementeerde bestanden installeren, tenzij ze beheerdersrechten hebben. Lokale implementatie kan een niet-beheerder toestaan om uw app te installeren en uit te voeren, maar ten koste van onafhankelijke servicebaarheid.

De installatieservice meldt een fout als u een centrale implementatie van oudere samenvoegmodules probeert uit te voeren via nieuwere bestaande bibliotheken. U moet uw installatieprogramma zo configureren dat het deze fout op een nette manier afhandelt en geen foutbericht weergeeft. Uw code kan nog steeds worden geïmplementeerd en uitgevoerd ondanks deze fout. Zie binaire compatibiliteit van C++ tussen Visual Studio-versies voor meer informatie.

Als u uw code alleen als .msi installatieprogramma implementeert, wordt u aangeraden de samenvoegmodules niet op te nemen in het installatieprogramma. Meld in plaats daarvan een fout aan de gebruiker wanneer de vereiste Herdistribueerbare bibliotheken niet worden gevonden. Neem in het dialoogvenster Fout instructies op voor het zoeken en installeren van het meest recente Herdistribueerbare pakket. Zie de meest recente ondersteunde Visual C++-downloads voor meer informatie en koppelingen naar Redistributable-pakketten.

De nieuwste Redistributable-pakketten en samenvoegmodules zijn compatibel met code die is gebouwd met Visual Studio 2015 en hoger. Code die is gebouwd door versies van Visual Studio vóór 2015, vereist een afzonderlijk Herdistribueerbaar pakket.

Wanneer gebruikt u samenvoegmodules?

Samenvoegmodules zijn alleen geschikt in beperkte omstandigheden:

  • U kunt om beleidsredenen geen afzonderlijk Redistributable-pakket installeren of gebruiken.
  • Uw code vereist een specifieke, foutcompatibele versie van de bibliotheken.
  • Uw code is slechts gericht op één platform en u hebt geen afhankelijkheden van meer dan één versie van de DLL's.
  • U bent van plan uw geïmplementeerde code regelmatig te onderhouden, zodat de bibliotheken up-to-date blijven.

Wanneer u samenvoegmodules gebruikt, moet u uw toepassing bijhouden en regelmatig onderhouden met bibliotheekupdates. Anders dwingt u uw clients uiteindelijk af om te kiezen tussen het uitvoeren van uw code of het blijven beveiligen.

Waar kunt u samenvoegmodulebestanden vinden?

In Visual Studio 2022 en 2019 maken samenvoegmodulebestanden deel uit van een optioneel installeerbaar onderdeel met de naam C++ <versie> Herdistribueerbare MSM's in het Installatieprogramma van Visual Studio. De samenvoegmodules worden standaard geïnstalleerd als onderdeel van een C++-installatie in Visual Studio 2017 en Visual Studio 2015. Wanneer deze is geïnstalleerd in Visual Studio 2022, vindt u de samenvoegmodules van Visual C++ Redistributable in %VCINSTALLDIR%Redist\MSVC\v143\MergeModules. In de nieuwste versie van Visual Studio 2019 bevinden de samenvoegmodules zich in %VCINSTALLDIR%Redist\MSVC\v142\MergeModules. In zowel Visual Studio 2019 als Visual Studio 2017 zijn ze ook te vinden in %VCToolsRedistDir%MergeModules. In Visual Studio 2015 zijn ze te vinden in Program Files [(x86)]\Common Files\Merge Modules. Zie Visual C++-bestanden opnieuw distribueren voor meer informatie en een koppeling naar een lijst met herdistribueerbare samenvoegmodules.

Zie ook

Visual C++-bestanden opnieuw distribueren