Redystrybucja składników przy użyciu modułów scalania
Ważne
W programie Visual Studio 2019 lub nowszym moduły scalania dla plików pakiet redystrybucyjny programu Visual C++ są przestarzałe. Nie zalecamy używania ich do wdrażania aplikacji. Pakiety redystrybucyjne zainstalowane przy użyciu modułów scalania nie mogą być aktualizowane przez usługę Windows Update, ponieważ mechanizm wykrywania zależy od znajomości szczegółów instalowania pakietu. Pakiety pakiet redystrybucyjny programu Visual C++ są znane dla każdej wersji, ale pakiety korzystające z usługi MSM są generowane przez użytkownika. Firma Microsoft nie zna szczegółów pakietów generowanych przez użytkownika. Zamiast tego zalecamy użycie centralnego wdrożenia pakietu pakiet redystrybucyjny programu Visual C++. Centralne wdrożenie instaluje pliki redystrybucyjne w folderze systemu Windows %SYSTEMROOT%\system32\
do użycia przez wszystkie aplikacje i użytkowników. Centralne wdrożenie pakietu redystrybucyjnego umożliwia firmie Microsoft niezależne obsługę plików bibliotek środowiska uruchomieniowego. Odinstalowanie aplikacji nie może również uszkodzić innych aplikacji korzystających z centralnego wdrożenia. Jeśli używasz pakietu redystrybucyjnego do centralnego wdrożenia, nie ponosisz odpowiedzialności za śledzenie i aktualizowanie bibliotek środowiska uruchomieniowego w ramach konserwacji aplikacji: usługa Microsoft Update aktualizuje te biblioteki. W przeciwnym razie aktualizacja plików bibliotek środowiska uruchomieniowego wymaga zaktualizowania i ponownego .msi
wdrożenia instalatora. Aplikacja może być podatna na błędy lub problemy z zabezpieczeniami, dopóki nie zrobisz tego.
Program Visual Studio obejmuje moduły scalania (.msm
pliki) dla każdego składnika Visual C++, który jest licencjonowany na redystrybucję za pomocą aplikacji. Istnieją oddzielne wersje modułów scalania dla każdej platformy docelowej. Gdy moduł scalania jest kompilowany w pliku instalacyjnym Instalatora Windows, umożliwia wdrażanie plików pakiet redystrybucyjny programu Visual C++ dla tej konkretnej platformy. Nie można uwzględnić modułów scalania dla różnych wersji tej samej biblioteki DLL w jednym instalatorze. W pliku instalacyjnym instalatora określ, że moduły scalania są wymaganiami wstępnymi dla aplikacji.
Moduły scalania można używać w przypadku wdrożenia centralnego lub lokalnego. Użytkownicy nie mogą instalować centralnie wdrożonych plików, chyba że mają uprawnienia administratora. Wdrożenie lokalne może zezwalać nieadministratorowi na instalowanie i uruchamianie aplikacji, ale kosztem niezależnej obsługi.
Usługa instalacji zgłasza błąd w przypadku próby centralnego wdrożenia starszych modułów scalania w nowszych istniejących bibliotekach. Należy napisać konfigurację instalatora, aby obsłużyć ten błąd w sposób bezproblemowy i nie wyświetlać komunikatu o błędzie. Kod nadal może zostać wdrożony i uruchomiony pomyślnie pomimo tego błędu. Aby uzyskać więcej informacji, zobacz Zgodność binarna języka C++ między wersjami programu Visual Studio.
Jeśli kod jest wdrażany tylko jako .msi
instalator, zalecamy, aby nie dołączać modułów scalania do instalatora. Zamiast tego zgłoś użytkownikowi błąd, gdy nie znaleziono wymaganych bibliotek redystrybucyjnych. W oknie dialogowym niepowodzenia dołącz instrukcje dotyczące znajdowania i instalowania najnowszego pakietu redystrybucyjnego. Aby uzyskać więcej informacji i linki do pakietów redystrybucyjnych, zobacz Najnowsze obsługiwane pliki do pobrania języka Visual C++.
Najnowsze pakiety redystrybucyjne i moduły scalania są zgodne z kodem utworzonym przy użyciu programu Visual Studio 2015 lub nowszego. Kod utworzony przez wersje programu Visual Studio przed 2015 r. wymaga oddzielnego pakietu redystrybucyjnego.
Kiedy należy używać modułów scalania
Moduły scalania są odpowiednie tylko w ograniczonych okolicznościach:
- Nie można zainstalować ani nie wymagać oddzielnego pakietu redystrybucyjnego ze względów zasad,
- Kod wymaga określonej, zgodnej z usterką wersji bibliotek,
- Kod jest przeznaczony tylko dla jednej platformy i nie masz zależności od więcej niż jednej wersji bibliotek DLL.
- Zamierzasz regularnie obsługiwać wdrożony kod, aby biblioteki pozostały aktualne.
W przypadku korzystania z modułów scalania należy śledzić i regularnie obsługiwać aplikację za pomocą aktualizacji biblioteki. W przeciwnym razie wymusisz na klientach wybranie między uruchomieniem kodu lub zachowaniem bezpieczeństwa.
Gdzie znaleźć pliki modułu scalania
W programach Visual Studio 2022 i 2019 pliki modułów scalania są częścią opcjonalnego składnika instalowanego o nazwie C++> <version Redistributable MSMs w Instalator programu Visual Studio. Moduły scalania są instalowane domyślnie w ramach instalacji języka C++ w programach Visual Studio 2017 i Visual Studio 2015. Po zainstalowaniu w programie Visual Studio 2022 moduły pakiet redystrybucyjny programu Visual C++ scalania znajdziesz w pliku %VCINSTALLDIR%Redist\MSVC\v143\MergeModules
. W najnowszej wersji programu Visual Studio 2019 moduły scalania znajdują się w programie %VCINSTALLDIR%Redist\MSVC\v142\MergeModules
. W programie Visual Studio 2019 i Visual Studio 2017 znajdują się one również w programie %VCToolsRedistDir%MergeModules
. W programie Visual Studio 2015 znajdują się one w pliku Program Files [(x86)]\Common Files\Merge Modules
. Aby uzyskać więcej informacji i link do listy modułów scalania redystrybucyjnego, zobacz Redystrybucja plików Visual C++.