Dela via


Välj en distributionsmetod

Vi rekommenderar att du använder Windows Installer för distribution. Windows Installer stöder installation, reparation och avinstallation och stöder även atomisk uppdatering av programfiler, beroenden och registerposter. Om inte ditt Visual C++-program är fristående och kan distribueras med hjälp av ett kopieringskommando använder du Windows Installer.

Anmärkning

Även om ClickOnce-distribution för visuella C++-inbyggda program är möjligt i Visual Studio, krävs det extra steg. Mer information finns i ClickOnce-distribution för Visual C++-program.

Visuella C++-bibliotek är delade DLL:er

Eftersom Visual C++-bibliotek installeras i %windir%\system32\ katalogen av Installationsprogrammet för Visual Studio, körs det som förväntat när du utvecklar ett Visual C++-program som är beroende av dem. De flesta datorer har dock inte Visual Studio installerat. För att distribuera programmet till dessa datorer rekommenderar vi att du ser till att biblioteken installeras tillsammans med ditt program.

Omdistribuerbara Visual C++-bibliotek

I dina distributioner kan du omdistribuera vilken version av ett Visual C++-bibliotek som är licensierat för omdistribution. Här är tre sätt att distribuera dem:

  • Central distribution med hjälp av Visual C++ Redistributable-paket. Den här metoden är den vi rekommenderar. Ett Visual C++ Redistributable-paket är en körbar fil som installerar Visual C++-bibliotek som delade DLL:er i %windir%\system32\. (Installationen i den här mappen kräver administratörsbehörighet.) Du kan skapa en bootstrapper, ett skript eller installationsprogram som kör paketet Redistributable innan du installerar programmet på måldatorn. Omdistribuerbara paket är tillgängliga för plattformarna x86, x64, ARM64 och ARM. Mer information om var du hittar paketfilerna finns i Hitta de omdistribuerbara filerna. Information om hur du använder ett omdistribuerbart paket finns i Genomgång: Distribuera ett Visuellt C++-program med hjälp av Visual C++ Redistributable Package.

  • Central distribution med hjälp av sammanslagningsmoduler. Den här metoden är inaktuell eftersom bibliotek som distribueras på det här sättet inte kan uppdateras automatiskt av Windows Update. Du kan använda sammanslagningsmoduler för att installera ett visst Visual C++-bibliotek som en delad DLL i %windir%\system32\. (Installationen av den här mappen kräver administratörsbehörighet.) Sammanslagningsmoduler blir en del av .msi installationsfilen för ditt program. Eftersom de är inaktuella är Visual C++ Redistributable merge-moduler en valfri, installationsbar komponent i Visual Studio 2022 och 2019. De installeras som standard i Visual Studio 2017 och 2015. Mer information finns i Var du hittar kopplingsmodulfiler.

  • Lokal distribution. Lokal distribution rekommenderas inte i de flesta situationer. I lokal distribution kopierar du specifika Visual C++ DLL:er från Visual Studio-installationen – vanligtvis i \%VCINSTALLDIR%Redist\MSVC\<version>\<target-platform>\– och installerar dem på måldatorer i samma mapp som programmets körbara fil. Du kan använda den här distributionsmetoden för att aktivera installation av användare som inte har administratörsbehörighet. Eller för program som kan köras från ett USB-minne eller en nätverksdelning.

Om en distribution använder redistributerbara sammanslagningsmoduler måste användaren som installerar appen ha administrativa rättigheter. Annars installeras inte Visual C++-DLL:er och programmet kanske inte körs. Programinstallationsprogram som tillåter installation per användare installerar biblioteken på en delad plats som påverkar alla användare av systemet. Du kan använda lokal distribution för att installera nödvändiga Visual C++ DLL:er i katalogen för en viss användares program. Den här metoden påverkar inte andra användare eller kräver administratörsbehörighet. Eftersom det kan skapa problem med servicebarhet rekommenderar vi inte lokal distribution av DLL:er som kan distribueras med Visual C++ Redistributable.

Felaktig distribution av Visual C++-bibliotek kan orsaka körningsfel under körning av ett program som är beroende av dem. När operativsystemet läser in programmet använder det sökordningen som beskrivs i LoadLibraryEx.

Dynamisk länkning är bättre än statisk länkning

Vi rekommenderar att du undviker statisk länkning när du omdistribuerar Visual C++-bibliotek. Även om statisk länkning nästan aldrig avsevärt förbättrar programmets prestanda, gör det nästan alltid servicen dyrare. Du kan till exempel överväga ett statiskt länkat program med ett bibliotek som har uppdaterats med säkerhetsförbättringar. Programmet kan inte gynnas om det inte omkompileras och distribueras om. I stället rekommenderar vi att du dynamiskt länkar dina program till de bibliotek som de är beroende av. Sedan kan biblioteken uppdateras var de än distribueras.

Se även

Distribuera skrivbordsapplikationer
ClickOnce-säkerhet och distribution
Distributionsexempel