Udostępnij za pośrednictwem


Wybieranie metody wdrażania

O ile aplikacja Visual C++ nie jest niezależna i można ją wdrożyć za pomocą polecenia Kopiuj, zaleca się używanie Instalatora Windows dla wdrażania.Instalator Windows obsługuje instalację, naprawę oraz dezinstalację, a także obsługuje atomowe aktualizowanie plików aplikacji, zależności i wpisów rejestru.

[!UWAGA]

Chociaż wdrożenie ClickOnce dla macierzystych aplikacji Visual C++ jest możliwe w Visual Studio, wymaga wykonania dodatkowych czynności.Aby uzyskać więcej informacji, zobacz Wdrożenie rozwiązania ClickOnce dla aplikacji Visual C++.

Biblioteki Visual C++ to współdzielone biblioteki DLL

Ponieważ biblioteki Visual C++ są instalowane w katalogu %windir%\system32\ przez instalator Visual Studio, podczas tworzenia aplikacji Visual C++, która od nich zależy, będzie ona działała zgodnie z oczekiwaniami.Aby wdrożyć aplikację na komputerach, które nie mają Visual Studio, zalecamy, aby się upewnić, że odpowiednie biblioteki są instalowane wraz z aplikacją.

Redystrybucja bibliotek Visual C++

We wdrożeniach można redystrybuować dowolną wersję biblioteki Visual C++, której licencja na to pozwala.Poniżej przedstawiono trzy sposoby ich wdrożenia:

  • Wdrożenie centralne przy użyciu pakietów redystrybucyjnych, które instaluje biblioteki Visual C++ jako współdzielone DLLl w %windir%\system32\. (Instalacja w tym folderze wymaga uprawnień administratora). Można utworzyć program Instalatora lub skrypt, który uruchamia pakiet redystrybucyjny przed zainstalowaniem aplikacji na komputerze docelowym.Pakiety redystrybucyjne są dostępne dla platform x86, x64 i ARM (VCRedist_x86.exe, VCRedist_x64.exe lub VCRedist_arm.exe).Visual Studio zawiera te pakiety w %ProgramFiles(x86)%\Microsoft Visual Studio version\VC\Redist\locale ID\.Można je również pobrać z Centrum pobierania firmy Microsoft. (W witrynie Centrum pobierania, wyszukaj „Pakiet redystrybucyjny Visual C++Visual Studio version and update” który odpowiada aplikacji.Na przykład, jeśli użyłeś Visual Studio 2012 update 4 do stworzenia aplikacji, wyszukaj „Visual C++ Redistributable Package 2012 update 4”.) Aby uzyskać więcej informacji dotyczących sposobu korzystania z pakietu redystrybucyjnego, zobacz Wskazówki: wdrażanie aplikacji Visual C++ przy użyciu pakietu redystrybucyjnego Visual C++.

  • Wdrożenie centralne przy użyciu modułów scalania, każdy z nich instaluje określoną bibliotekę języka Visual C++ jako współdzieloną DLL w %windir%\system32\. (Instalacja w tym folderze wymaga uprawnień administratora.) Moduły scalania stają się częścią pliku .msi Instalatora aplikacji.Redystrybucyjne moduły scalania Visual C++ są zawarte w Visual Studio, w \Program Files(x86)\Common Files\Merge Modules\.Aby uzyskać więcej informacji, zobacz Redystrybuowanie przy użyciu modułów korespondencji seryjnej.

  • Wdrożenie lokalne, w którym kopiujesz określone DLL Visual C++ z instalacji Visual Studio — zazwyczaj w \Program Files(x86)\Microsoft Visual Studio version\VC\Redist\platform\library\— i instalujesz je na komputerach docelowych w tym samym folderze, co plik wykonywalny aplikacji.Możesz użyć tej metody wdrożenia, aby umożliwić instalację przez użytkowników, którzy nie mają praw administratora, lub dla aplikacji, które mogą być uruchamiane z udziału sieciowego.

Jeśli wdrożenie używa redystrybucyjnych modułów scalania, a instalację uruchamia użytkownik, który nie mają praw administratora, pliki DLL Visual C++ nie są instalowane i aplikacja nie będzie działać.Ponadto programy instalacyjne aplikacji, skompilowane z wykorzystaniem modułów scalania, które zezwalają na instalację dla poszczególnych użytkowników, instalują biblioteki we współdzielonej lokalizacji, która wpływa na wszystkich użytkowników systemu.Możesz użyć lokalnego wdrażania, aby zainstalować wymagane DLL Visual C++ w katalogu aplikacji danego użytkownika, bez wpływu na innych użytkowników i bez wymagania praw administratora.Ponieważ może to prowadzić do problemów z serwisowaniem, nie zaleca się lokalnego wdrażania redystrybucyjnych bibliotek DLL Visual C++.

Nieprawidłowe wdrożenie bibliotek Visual C++ może spowodować błędy w czasie wykonywania aplikacji, która od nich zależy.Podczas ładowania aplikacji system operacyjny używa kolejności wyszukiwania opisanej w LoadLibraryEx

Łączenie dynamiczne jest lepsze niż łączenie statyczne

Firma Microsoft zaleca, aby unikać łączenia statycznego, gdy redystrybuujesz biblioteki Visual C++.Chociaż łączenie statyczne prawie nigdy nie zwiększa znacznie wydajności aplikacji, to prawie zawsze sprawia, że serwisowanie jest droższe.Rozważmy na przykład aplikację, statycznie połączoną z biblioteką, która to biblioteka została zaktualizowana, aby poprawić jej zabezpieczenia — aplikacja z nich nie skorzysta, chyba że zostanie zrekompilowana i ponownie wdrożona.Zamiast tego zaleca się dynamiczne łączenie aplikacji z bibliotekami, od których zależą, aby można było aktualizować biblioteki, kiedy zostaną wdrożone.

Zobacz też

Koncepcje

Wskazówki dotyczące wdrażania ClickOnce

Przykłady wdrożeń

Inne zasoby

Wdrażanie aplikacji biurowych (Visual C++)

Wybieranie strategii wdrażania

Windows Installer Deployment Overview