Share via


Zjištění, které knihovny DLL je třeba redistribuovat

Při vytváření aplikace, která používá knihovny DLL poskytované sadou Visual Studio, musí mít uživatelé vaší aplikace také tyto knihovny DLL na svých počítačích, aby aplikace běžela. Vzhledem k tomu, že většina uživatelů pravděpodobně nemá nainstalovanou sadu Visual Studio, musíte jim tyto knihovny DLL poskytnout. Visual Studio zpřístupní tyto knihovny DLL jako distribuovatelné soubory , které můžete zahrnout do instalačního programu aplikace.

Aby bylo možné do instalačního programu zahrnout distribuovatelné knihovny DLL, jsou k dispozici jako samostatné distribuovatelné balíčky. Tyto balíčky jsou spustitelné soubory specifické pro architekturu, které používají centrální nasazení k instalaci distribuovatelných souborů do počítače uživatele. Například vc_redist.x86.exe nainstaluje 32bitové knihovny pro počítače x86 i x64, vc_redist.x64.exe nainstaluje 64bitové knihovny pro počítače x64 a vcredist.ARM64.exe nainstaluje knihovny pro počítače ARM a ARM64. Doporučujeme centrální nasazení, protože Microsoft může službu služba Windows Update používat k nezávislé aktualizaci těchto knihoven. Kromě kopie v instalaci sady Visual Studio jsou aktuální distribuovatelné balíčky k dispozici ke stažení. Odkazy na nejnovější podporované distribuovatelné balíčky pro aktuální i starší sady nástrojů najdete v tématu Nejnovější podporované distribuovatelné soubory Visual C++. Konkrétní starší verze redistribuovatelných balíčků mohou být nalezeny vyhledáním my.visualstudio.com distribuovatelných balíčků Visual C++.

Aby bylo možné do instalačního programu zahrnout distribuovatelné knihovny DLL, jsou k dispozici jako samostatné distribuovatelné balíčky. Tyto balíčky jsou spustitelné soubory specifické pro architekturu, které používají centrální nasazení k instalaci distribuovatelných souborů do počítače uživatele. Například vcredist_x86.exe nainstaluje 32bitové knihovny pro počítače x86 i x64, vcredist_x64.exe nainstaluje 64bitové knihovny pro počítače x64 a vcredist_ARM.exe nainstaluje knihovny pro počítače ARM. Doporučujeme centrální nasazení, protože Microsoft může službu služba Windows Update používat k nezávislé aktualizaci těchto knihoven. Kromě kopie v instalaci sady Visual Studio jsou aktuální distribuovatelné balíčky k dispozici ke stažení. Odkazy na nejnovější podporované distribuovatelné balíčky pro aktuální i starší sady nástrojů najdete v tématu Nejnovější podporované soubory ke stažení jazyka Visual C++. Konkrétní starší verze redistribuovatelných balíčků mohou být nalezeny vyhledáním my.visualstudio.com distribuovatelných balíčků Visual C++.

Podporujeme pouze použití distribuovatelného balíčku, který je stejný jako nebo novější než vaše verze sady nástrojů. Hlavní číslo verze balíčku Redistributable, který nasadíte, musí odpovídat verzi sady nástrojů sady Visual Studio použitou k vytvoření aplikace a podverze musí být stejná nebo vyšší. Visual Studio 2022, 2019, 2017 a 2015 mají všechna kompatibilní čísla verzí sady nástrojů. V těchto verzích můžou všechny novější distribuovatelné soubory sady Visual Studio používat aplikace vytvořené sadou nástrojů ze starší verze. Například distribuovatelné soubory sady Visual Studio 2022 můžou používat aplikace vytvořené pomocí sady nástrojů sady Visual Studio 2017 nebo 2015. I když mohou být kompatibilní, nepodporujeme používání starších redistribuovatelných souborů v aplikacích vytvořených pomocí novější sady nástrojů. Například použití distribuovatelných souborů 2017 v aplikacích vytvořených pomocí sady nástrojů 2019 se nepodporuje.

Do slučovacích modulů je také možné zahrnout distribuovatelné knihovny DLL s instalačním programem. Tato metoda je teď zastaralá, protože knihovny nasazené tímto způsobem nejde automaticky aktualizovat služba Windows Update. Distribuovatelné slučovací moduly nebo moduly Microsoft Installer (.msmsoubory) jsou volitelné komponenty dostupné v Instalační program pro Visual Studio. Při instalaci se slučovací moduly pro distribuovatelné knihovny DLL nacházejí v instalačním adresáři sady Visual Studio v části %VCToolsRedistDir%\MergeModules\. V sadě Visual Studio 2015 a starších verzích sady Visual Studio se tyto soubory nacházejí v adresáři Program Files nebo Program Files (x86) v Common Files\Merge Modules podadresáři. Další informace o použití těchto souborů naleznete v tématu Redistribuce komponent pomocí slučovacích modulů.

Jednotlivé distribuovatelné knihovny DLL jsou také součástí instalace sady Visual Studio. Ve výchozím nastavení jsou nainstalované ve složkách Visual %VCToolsRedistDir%\[architecture]\Microsoft.[toolset].[library] , kde [architecture] představuje cílovou architekturu, [toolset] představuje verzi sady nástrojů a [library] představuje knihovnu.

Do slučovacích modulů je také možné zahrnout distribuovatelné knihovny DLL s instalačním programem. Tato metoda je teď zastaralá, protože knihovny nasazené tímto způsobem nejde automaticky aktualizovat služba Windows Update. Redistribuovatelné slučovací moduly pro distribuovatelné knihovny DLL se nacházejí v adresáři Program Files nebo Program Files (x86) v Common Files\Merge Modules podadresáři. Další informace o použití těchto souborů naleznete v tématu Redistribuce komponent pomocí slučovacích modulů.

Jednotlivé distribuovatelné knihovny DLL jsou také součástí instalace sady Visual Studio. Ve výchozím nastavení jsou nainstalované v instalačním adresáři sady Visual Studio 2015 ve redist\debug_nonredist\[architecture]\Microsoft.[toolset].[library] složkách, kde [architecture] představuje cílovou architekturu, [toolset] představuje verzi sady nástrojů a [library] je knihovnou ladění, která obsahuje knihovny DLL ladění.

Použijte nejnovější verzi libovolného souboru knihovny DLL, distribuovatelného balíčku nebo modulu sloučení nalezeného v těchto adresářích. Tyto knihovny můžete použít pro místní nasazení tak, že je nainstalujete do stejného adresáře jako vaše aplikace. Nedoporučujeme místní nasazení, protože je zodpovědné za doručování aktualizací do nasazených aplikací. Preferuje se centrální nasazení pomocí distribuovatelných balíčků.

Pokud chcete zjistit, které knihovny DLL musíte distribuovat s aplikací, shromážděte seznam knihoven DLL, na kterých vaše aplikace závisí. Tyto knihovny DLL jsou obvykle uvedené jako vstupy knihovny importu do linkeru. Některé knihovny, jako jsou vcruntime a knihovna UCRT (Universal C Runtime Library), jsou ve výchozím nastavení zahrnuté. Pokud se vaše aplikace nebo některá z jejích závislostí používá LoadLibrary k dynamickému načtení knihovny DLL, nemusí být tato knihovna DLL uvedena ve vstupech linkeru. Jedním ze způsobů, jak shromáždit seznam dynamicky načtených knihoven DLL, je spustit v aplikaci walker závislostí (depends.exe), jak je popsáno v tématu Vysvětlení závislostí aplikace Visual C++. Tento nástroj je bohužel zastaralý a může hlásit, že nemůže najít určité knihovny DLL.

Pokud máte seznam závislostí, porovnejte ho se seznamem propojeným v souboru v Redist.txt instalačním adresáři sady Microsoft Visual Studio. Nebo na seznam redistribuovatelných knihoven DLL, na které se odkazuje v části Soubory distribuovatelného kódu licenčních podmínek pro software společnosti Microsoft pro vaši kopii sady Visual Studio. Pro Visual Studio 2022 viz distribuovatelný kód pro Visual Studio 2022. Visual Studio 2019 najdete v tématu Distribuovatelný kód pro Visual Studio 2019. Informace o sadě Visual Studio 2017 najdete v tématu Distribuovatelný kód pro Microsoft Visual Studio 2017 (zahrnuje nástroje, rozšiřitelnost a soubory buildovacího serveru). Informace o sadě Visual Studio 2015 najdete v tématu Distribuovatelný kód pro Microsoft Visual Studio 2015 a Microsoft Visual Studio 2015 SDK (zahrnuje nástroje a soubory buildovacího serveru). Pro Visual Studio 2013 je seznam k dispozici online v distribuovatelném kódu pro Microsoft Visual Studio 2013 a Microsoft Visual Studio 2013 SDK.

Ve verzích sady Visual Studio před sadou Visual Studio 2015 byla knihovna C Runtime Library (CRT) zahrnuta jako distribuovatelná knihovna DLL v msvc[version].dll. V sadě Visual Studio 2015 byly funkce v CRT refaktorovány do vcruntime a UCRT. UCRT je teď systémová komponenta ve Windows 10 a novější, kterou spravuje služba Windows Update. Je k dispozici ve všech operačních systémech Windows 10 a novějších. Pokud chcete nasadit aplikaci do dřívějších operačních systémů, možná budete muset distribuovat i UCRT. Dřívější verze UCRT je součástí distribuovatelných souborů sady Visual Studio. Tato verze je nainstalovaná pouze v operačních systémech starších než Windows 10 a pouze v případě, že už není nainstalovaná žádná verze UCRT. Instalovatelná verze UCRT pro systémy downlevel jako balíček Microsoft System Update naleznete v tématu Windows 10 Universal C Runtime v nástroji Microsoft Download Center.

Nemůžete distribuovat všechny soubory, které jsou součástí sady Visual Studio. Smíte pouze distribuovat soubory zadané v Redist.txt seznamu REDIST nebo online seznamu REDIST. Nemůžete také distribuovat ladicí verze aplikací ani ladicí verze knihoven DLL nebo knihoven poskytovaných Microsoftem. Do počítačů, které používáte k testování, můžete kopírovat pouze ladicí spustitelné soubory a knihovny. Další informace najdete v tématu Volba metody nasazení.

Následující tabulka popisuje některé knihovny DLL jazyka Visual C++, na nichž může vaše aplikace záviset.

Knihovna Visual C++ Popis Platí pro
vcruntime[version].dll Knihovna modulu runtime pro nativní kód Aplikace, které používají normální služby spouštění a ukončení jazyka C a C++.
vccorlib[version].dll Knihovna modulu runtime pro spravovaný kód Aplikace, které používají služby jazyka C++ pro spravovaný kód.
msvcp[version].dll a msvcp[version_dotnumber].dll Standardní knihovna C++ pro nativní kód Aplikace, které používají standardní knihovnu jazyka C++.
concrt[version].dll Knihovna Concurrency Runtime Pro nativní kód Aplikace, které používají Concurrency Runtime.
mfc[version].dll Knihovna MFC (Microsoft Foundation Classes). Aplikace, které používají knihovnu MFC.
mfc[version][language].dll Prostředky knihovny mfc (Microsoft Foundation Classes). Aplikace, které používají specifické jazykové prostředky pro prostředí MFC.
mfc[version]u.dll Knihovna MFC s podporou kódování Unicode Aplikace, které používají knihovnu MFC a vyžadují podporu kódování Unicode.
mfcmifc80.dll Knihovna spravovaných rozhraní MFC Aplikace, které používají knihovnuMFC s ovládacími prvky model Windows Forms
mfcm[version].dll MFC – spravovaná knihovna Aplikace, které používají knihovnuMFC s ovládacími prvky model Windows Forms
mfcm[version]u.dll Mfc Managed Library with Unicode support. Aplikace, které používají knihovnuMFC s ovládacími prvky model Windows Forms a vyžadují podporu sady Unicode.
vcamp[version].dll Knihovna AMP pro nativní kód Aplikace, které používají kód knihovny C++ AMP.
vcomp[version].dll OpenMP Library for native code. Aplikace, které používají kód knihovny C++ OpenMP.

Poznámka:

Knihovnu aktivních šablon už nemusíte distribuovat jako samostatnou knihovnu DLL. Její funkce se přesunula do záhlaví a statické knihovny.

Další informace o redistribuci těchto knihoven DLL s vaší aplikací naleznete v tématu Redistribuce souborů Visual C++. Příklady najdete v příkladech nasazení.

Obvykle nemusíte distribuovat systémové knihovny DLL, protože jsou součástí operačního systému. Můžou ale existovat výjimky, například když se vaše aplikace spustí v několika verzích operačních systémů Microsoftu. V takovém případě si nezapomeňte přečíst odpovídající licenční podmínky. Zkuste také získat systémové knihovny DLL upgradované prostřednictvím služba Windows Update, aktualizací Service Pack nebo pomocí distribuovatelných balíčků, které microsoft zpřístupnil.

Viz také

Volba metody nasazení
Nasazení desktopových aplikací