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. Windows Update kan herdistribueerbare bestanden die zijn geïnstalleerd met behulp van samenvoegmodules niet bijwerken, omdat het detectiemechanisme afhankelijk is van de gegevens van het installatiepakket.

De Visual C++ Redistributable-pakketten staan bekend voor elke release, maar pakketten die gebruikmaken van samenvoegmodules, worden door de gebruiker gegenereerd. Microsoft kan de details van door de gebruiker gegenereerde pakketten niet kennen. In plaats daarvan raden we u aan om de centrale implementatie van het Visual C++ Redistributable-pakket te gebruiken. Met de centrale implementatie worden de herdistribueerbare bestanden geïnstalleerd in de map Windows %SYSTEMROOT%\system32\ voor gebruik door alle toepassingen en gebruikers. Centrale implementatie door een herdistribueerbaar pakket maakt het mogelijk dat Microsoft de runtimebibliotheekbestanden onafhankelijk van elkaar kan verwerken. Een verwijdering van uw app kan andere toepassingen die ook gebruikmaken van centrale implementatie niet verbreken.

Wanneer u een herdistribueerbaar pakket gebruikt voor centrale implementatie, bent u niet verantwoordelijk voor het bijhouden en bijwerken van de runtimebibliotheken als onderdeel van het onderhoud van uw toepassing. De Microsoft Update-service werkt deze bibliotheken voor u bij. Anders moet u voor een update van de runtimebibliotheekbestanden uw -installatieprogramma bijwerken en opnieuw implementeren. Uw app kan kwetsbaar zijn voor bugs of beveiligingsproblemen totdat u dat doet.

Visual Studio bevat mergemodules (.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 voor Windows Installatieprogramma, wordt de implementatie van Herdistribueerbare bestanden van Visual C++ naar dat specifieke platform mogelijk gemaakt. U kunt geen samenvoegmodules opnemen voor verschillende versies van dezelfde DLL (Dynamic Link Library) 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 C++ binaire compatibiliteit tussen Visual Studio versies voor meer informatie.

Als u uw code alleen als 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 herdistribueerbare pakketten.

De meest recente herdistribueerbare pakketten en samenvoegmodules zijn compatibel met code die is gebouwd met behulp van Visual Studio 2015 en hoger. Voor code die is gebouwd door versies van Visual Studio vóór 2015, is een afzonderlijk herdistribueerbaar pakket vereist.

Wanneer gebruikt u samenvoegmodules?

Samenvoegmodules zijn alleen geschikt in beperkte omstandigheden:

  • U kunt om beleidsredenen geen afzonderlijk redistributable package installeren of aanvragen.
  • Voor uw code is een specifieke, foutcompatibele versie van de bibliotheken vereist.
  • 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++ <version> Herdistribueerbare MSM in het Visual Studio Installer. De samenvoegmodules worden standaard geïnstalleerd als onderdeel van een C++-installatie in Visual Studio 2017 en Visual Studio 2015. Wanneer de samenvoegmodules zijn geïnstalleerd in Visual Studio 2022, kunt u de samenvoegmodules van Visual C++ Redistributable vinden 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.

  • Visual C++-bestanden opnieuw distribueren