Nasazení ve Visual C++
Instalace aplikace na jiném počítači, než je vývojový počítač, se označuje jako nasazení. Když nasadíte aplikaci Visual C++ do jiného počítače, musíte nainstalovat aplikaci i všechny soubory knihovny, na které závisí. Visual Studio umožňuje tři způsoby nasazení knihoven Visual C++ společně s vaší aplikací: centrální nasazení, místní nasazení a statické propojení. Centrální nasazení umístí soubory knihovny do adresáře Systému Windows, kde k nim můžou automaticky přistupovat všechny aplikace. Místní nasazení umístí soubory knihovny do stejného adresáře jako vaše aplikace. Abyste je mohli aktualizovat, musíte znovu nasadit všechny místně nasazené knihovny sami. Statické propojení sváže kód knihovny s vaší aplikací. Aplikaci musíte znovu zkompilovat a znovu nasadit, abyste při použití statického propojení mohli využívat všechny aktualizace knihoven.
V sadě Visual Studio 2015 byla knihovna Microsoft C Runtime refaktorována na součásti místní knihovny specifické pro verzi a novou knihovnu Universal C Runtime, která je nyní součástí Windows. Podrobnosti o nasazení univerzálního CRT najdete v tématu Nasazení UNIVERSAL CRT.
Centrální nasazení
V centrálním nasazení jsou soubory knihovny DLL nainstalovány v Windows\System32
adresáři nebo pro 32bitové soubory knihovny v systémech x64 adresář Windows\SysWow64
. Soubory centrálně nasazené knihovny jsou k dispozici pro jiné aplikace.
Pokud chcete centrálně nasadit knihovny Visual C++, můžete k instalaci souborů použít jeden z těchto dvou zdrojů:
Distribuovatelné soubory balíčků . Tyto soubory jsou samostatné spustitelné soubory příkazového řádku, které obsahují všechny redistribuovatelné knihovny Visual C++ v komprimované podobě. Nejnovější distribuovatelné balíčky jsou k dispozici od microsoft Visual C++ Redistributable Nejnovější podporované soubory ke stažení. Pokud použijete distribuovatelné balíčky pro centrální nasazení, služba Windows Update mohou knihovny obsluhovat nezávisle.
Redistribuovatelné slučovací moduly (
.msm
soubory), které můžete zahrnout do souboru Instalační služby systému Windows (.msi
) vaší aplikace. Tato metoda je zastaralá, protože knihovny nasazené tímto způsobem nejde automaticky aktualizovat služba Windows Update. Další informace naleznete v tématu Redistribuce pomocí slučovacích modulů.
Distribuovatelný soubor balíčku nainstaluje všechny knihovny Visual C++ pro konkrétní systémovou architekturu. Pokud je například vaše aplikace vytvořená pro platformu x64, můžete pomocí vcredist_x64.exe
balíčku nainstalovat všechny knihovny Visual C++, které vaše aplikace používá. Instalační program aplikace můžete naprogramovat tak, aby balíček spustil jako předpoklad před instalací aplikace.
Centrální nasazení pomocí distribuovatelného balíčku umožňuje služba Windows Update automaticky aktualizovat knihovny Visual C++. Pro trvalé zabezpečení a funkčnost doporučujeme používat knihovny DLL v aplikaci místo statických knihoven a používat distribuovatelné balíčky a centrální nasazení místo místního nasazení.
Místní nasazení
V místním nasazení se soubory knihovny instalují do složky aplikace společně se spustitelným souborem. Různé verze redistribuovatelných knihoven Visual C++ je možné nainstalovat do stejné složky, protože název souboru každé verze obsahuje jeho číslo verze. Například verze 12 knihovny modulu runtime C++ je msvcp120.dll
a verze 14 je msvcp140.dll
.
Rozšíření knihovny můžou být rozložená mezi více extra knihoven DLL, označovaných jako tečkové knihovny. Například některé funkce ve standardní knihovně vydané v sadě Visual Studio 2017 verze 15.6 byly přidány do msvcp140_1.dll
, aby byla zachována kompatibilita msvcp140.dll
ABI . Pokud používáte Visual Studio 2017 verze 15.6 (sada nástrojů 14.13) nebo novější, možná budete muset tyto tečkové knihovny i hlavní knihovnu nasadit místně. Tyto samostatné tečkové knihovny se nakonec při změně ABI přidají do základní knihovny.
Protože Microsoft nemůže automaticky aktualizovat místně nasazené knihovny Visual C++, nedoporučujeme místní nasazení těchto knihoven. Pokud se rozhodnete použít místní nasazení redistribuovatelných knihoven, doporučujeme implementovat vlastní metodu automatické aktualizace místně nasazených knihoven.
Statické propojení
Kromě dynamicky propojených knihoven poskytuje Visual Studio většinu svých knihoven jako statické knihovny. Staticky můžete propojit statickou knihovnu s vaší aplikací, tj. propojit kód objektu knihovny přímo do aplikace. Statické propojení vytvoří jeden binární soubor bez závislosti knihovny DLL, takže nemusíte nasazovat soubory knihovny Visual C++ samostatně. Tento přístup ale nedoporučujeme, protože staticky propojené knihovny nejde aktualizovat. Pokud chcete aktualizovat propojenou knihovnu při použití statického propojení, musíte aplikaci znovu zkompilovat a znovu nasadit.
Řešení potíží s nasazením
Pořadí načítání knihoven Visual C++ je závislé na systému. K diagnostice problémů s zavaděčem použijte depends.exe
nebo where.exe
. Další informace najdete v tématu Pořadí hledání dynamické knihovny (Windows).