Wdrożenie w Visual C++

Instalacja aplikacji na komputerze innym niż komputer deweloperzy jest nazywana wdrożeniem. Podczas wdrażania aplikacji Visual C++ na innym komputerze należy zainstalować zarówno aplikację, jak i wszystkie pliki biblioteki, od których zależy. Program Visual Studio umożliwia wdrażanie bibliotek Visual C++ razem z aplikacją: centralne wdrażanie, wdrażanie lokalne i łączenie statyczne. Centralne wdrożenie umieszcza pliki biblioteki w katalogu systemu Windows, gdzie wszystkie aplikacje mogą uzyskiwać do nich dostęp automatycznie. Wdrożenie lokalne umieszcza pliki biblioteki w tym samym katalogu co aplikacja. Aby je zaktualizować, należy ponownie wdrożyć wszystkie lokalnie wdrożone biblioteki. Łączenie statyczne wiąże kod biblioteki z aplikacją. Musisz ponownie skompilować i ponownie wdrożyć aplikację, aby skorzystać z aktualizacji bibliotek podczas korzystania z linków statycznych.

W programie Visual Studio 2015 biblioteka środowiska Uruchomieniowego języka Microsoft C została refaktoryzowana do składników bibliotek lokalnych specyficznych dla wersji oraz nowej biblioteki uniwersalnego środowiska uruchomieniowego języka C, która jest teraz częścią systemu Windows. Aby uzyskać szczegółowe informacje na temat wdrażania uniwersalnego CRT, zobacz Wdrażanie uniwersalnego CRT.

Centralne wdrożenie

W centralnym wdrożeniu pliki DLL biblioteki są instalowane w Windows\System32 katalogu lub w przypadku plików bibliotek 32-bitowych w systemach Windows\SysWow64 x64 katalog. Centralnie wdrożone pliki bibliotek są dostępne dla innych aplikacji.

Aby centralnie wdrożyć biblioteki Visual C++, można użyć jednego z tych dwóch źródeł do zainstalowania plików:

  • Pliki pakietu redystrybucyjnego. Te pliki to autonomiczne pliki wykonywalne wiersza polecenia, które zawierają wszystkie biblioteki pakiet redystrybucyjny programu Visual C++ w postaci skompresowanej. Najnowsze pakiety redystrybucyjne są dostępne w witrynie Microsoft pakiet redystrybucyjny programu Visual C++ najnowsze obsługiwane pliki do pobrania. W przypadku korzystania z pakietów redystrybucyjnych do centralnego wdrożenia usługa Windows Update może obsługiwać biblioteki niezależnie.

  • Moduły scalania redystrybucyjnego (.msm pliki), które można uwzględnić w pliku Instalatora Windows aplikacji (.msi). Ta metoda jest przestarzała, ponieważ biblioteki wdrożone w ten sposób nie mogą być aktualizowane automatycznie przez usługę Windows Update. Aby uzyskać więcej informacji, zobacz Redystrybucja przy użyciu modułów scalania.

Plik pakietu redystrybucyjnego instaluje wszystkie biblioteki Visual C++ dla określonej architektury systemu. Jeśli na przykład aplikacja została utworzona dla środowiska x64, możesz użyć vcredist_x64.exe pakietu do zainstalowania wszystkich bibliotek Visual C++ używanych przez aplikację. Przed zainstalowaniem aplikacji możesz zaprogramować instalator aplikacji, aby uruchomić pakiet jako warunek wstępny.

Centralne wdrożenie przy użyciu pakietu redystrybucyjnego umożliwia usłudze Windows Update automatyczne aktualizowanie bibliotek Visual C++. W celu zapewnienia ciągłego zabezpieczeń i funkcjonalności zalecamy używanie bibliotek DLL w aplikacji zamiast bibliotek statycznych oraz używania pakietów redystrybucyjnych i centralnego wdrożenia zamiast wdrożenia lokalnego.

Wdrożenie lokalne

We wdrożeniu lokalnym pliki biblioteki są instalowane w folderze aplikacji wraz z plikiem wykonywalnym. Różne wersje bibliotek pakiet redystrybucyjny programu Visual C++ można zainstalować w tym samym folderze, ponieważ nazwa pliku każdej wersji zawiera jego numer wersji. Na przykład wersja 12 biblioteki środowiska uruchomieniowego języka C++ to msvcp120.dll, a wersja 14 to msvcp140.dll.

Rozszerzenia biblioteki mogą być rozłożone na wiele dodatkowych bibliotek DLL, znanych jako biblioteki kropkowe. Na przykład niektóre funkcje w standardowej bibliotece wydanej w programie Visual Studio 2017 w wersji 15.6 zostały dodane do msvcp140_1.dllprogramu , aby zachować zgodność usługi ABI.msvcp140.dll Jeśli używasz programu Visual Studio 2017 w wersji 15.6 (zestawu narzędzi 14.13) lub nowszego, może być konieczne lokalne wdrożenie zarówno tych bibliotek kropkowych, jak i biblioteki głównej. Te oddzielne biblioteki kropkowe zostaną ostatecznie dodane do biblioteki podstawowej po zmianie usługi ABI.

Ponieważ firma Microsoft nie może automatycznie aktualizować lokalnie wdrożonych bibliotek Visual C++, nie zalecamy lokalnego wdrażania tych bibliotek. Jeśli zdecydujesz się użyć lokalnego wdrożenia bibliotek redystrybucyjnych, zalecamy zaimplementowanie własnej metody automatycznego aktualizowania lokalnie wdrożonych bibliotek.

Łączenie statyczne

Oprócz dynamicznie połączonych bibliotek program Visual Studio dostarcza większość swoich bibliotek jako bibliotek statycznych. Możesz statycznie połączyć bibliotekę statyczną z aplikacją, czyli połączyć kod obiektu biblioteki bezpośrednio z aplikacją. Łączenie statyczne tworzy pojedynczy plik binarny bez zależności biblioteki DLL, aby nie trzeba było oddzielnie wdrażać plików bibliotek visual C++. Nie zalecamy jednak tego podejścia, ponieważ nie można aktualizować statycznie połączonych bibliotek. Aby zaktualizować połączoną bibliotekę podczas korzystania z łączenia statycznego, należy ponownie skompilować i ponownie wdrożyć aplikację.

Rozwiązywanie problemów z wdrażaniem

Kolejność ładowania bibliotek Visual C++ jest zależna od systemu. Aby zdiagnozować problemy z modułem ładujący, użyj polecenia depends.exe lub where.exe. Aby uzyskać więcej informacji, zobacz Dynamic-link library search order (Windows).

Zobacz też

Wdrażanie aplikacji klasycznych
Wdrożenie środowiska Universal CRT