Birleştirme modüllerini kullanarak bileşenleri yeniden dağıtma
Önemli
Visual Studio 2019 ve sonraki sürümlerde, Visual C++ Yeniden Dağıtılabilir dosyalar için birleştirme modülleri kullanım dışıdır. Bunları uygulama dağıtımı için kullanmanızı önermiyoruz. Algılama mekanizması yükleme paketinin ayrıntılarını bilmeyi gerektirdiğinden, Birleştirme modülleri kullanılarak yüklenen yeniden dağıtılabilir bileşenler Windows Update tarafından güncelleştirilemez. Visual C++ Yeniden Dağıtılabilir paketleri her sürüm için bilinir, ancak MSM kullanan paketler kullanıcı tarafından oluşturulur. Microsoft, kullanıcı tarafından oluşturulan paketlerin ayrıntılarını bilemez. Bunun yerine, Visual C++ Yeniden Dağıtılabilir paketinin merkezi dağıtımını kullanmanızı öneririz. Merkezi dağıtım, Yeniden Dağıtılabilir dosyaları tüm uygulamalar ve kullanıcılar tarafından kullanılmak üzere Windows %SYSTEMROOT%\system32\
klasörüne yükler. Yeniden dağıtılabilir bir paket tarafından merkezi dağıtım, Microsoft'un çalışma zamanı kitaplık dosyalarına bağımsız olarak hizmet vermesini mümkün kılar. Ayrıca uygulamanızın kaldırılması, merkezi dağıtım kullanan diğer uygulamaları bozamaz. Merkezi dağıtım için yeniden dağıtılabilir bir paket kullandığınızda, uygulama bakımınızın bir parçası olarak çalışma zamanı kitaplıklarını izlemek ve güncelleştirmek sizin sorumluluğunuzda değildir: Microsoft Update hizmeti bu kitaplıkları sizin için güncelleştirir. Aksi takdirde, çalışma zamanı kitaplığı dosyalarına yönelik bir güncelleştirme yükleyicinizi güncelleştirmenizi ve yeniden dağıtmanızı .msi
gerektirir. Uygulamanız, siz bunu yapıncaya kadar hatalara veya güvenlik sorunlarına karşı savunmasız olabilir.
Visual Studio, bir uygulamayla yeniden dağıtım için lisanslı her Visual C++ bileşeni için birleştirme modülleri (.msm
dosyalar) içerir. Her hedef platform için birleştirme modüllerinin ayrı sürümleri vardır. Birleştirme modülü bir Windows Installer kurulum dosyasında derlendiğinde, Visual C++ Yeniden Dağıtılabilir dosyaların söz konusu platforma dağıtilmesini sağlar. Aynı DLL'nin farklı sürümleri için birleştirme modüllerini tek bir yükleyiciye ekleyemezsiniz. Yükleyici kurulum dosyanızda birleştirme modüllerinin uygulamanız için önkoşullar olduğunu belirtin.
Merkezi dağıtım veya yerel dağıtım için birleştirme modüllerini kullanabilirsiniz. Kullanıcılar yönetici haklarına sahip olmadığı sürece merkezi olarak dağıtılan dosyaları yükleyemez. Yerel dağıtım, yönetici olmayan bir kullanıcının uygulamanızı yüklemesine ve çalıştırmasına izin verebilir, ancak bağımsız hizmet verilebilirlik karşılığında.
Daha yeni mevcut kitaplıklar üzerinde eski birleştirme modüllerinin merkezi dağıtımını denerseniz yükleme hizmeti bir hata bildirir. Bu hatayı düzgün bir şekilde işlemek ve hata iletisi görüntülememek için yükleyici kurulumunuzu yazmanız gerekir. Kodunuz bu hataya rağmen başarıyla dağıtılabilir ve çalışmaya devam edebilir. Daha fazla bilgi için bkz . Visual Studio sürümleri arasında C++ ikili uyumluluğu.
Kodunuzu yalnızca yükleyici .msi
olarak dağıtırsanız, birleştirme modüllerini yükleyiciye eklememenizi öneririz. Bunun yerine, gerekli Yeniden Dağıtılabilir kitaplıklar bulunamadığında kullanıcıya bir hata bildirin. Hata iletişim kutusunda, en son Yeniden Dağıtılabilir paketi bulma ve yükleme yönergelerini ekleyin. Yeniden dağıtılabilir paketlerin bağlantıları ve daha fazla bilgi için bkz . Desteklenen en son Visual C++ indirmeleri.
En son Yeniden Dağıtılabilir paketler ve birleştirme modülleri Visual Studio 2015 ve üzeri kullanılarak oluşturulan kodla uyumludur. Visual Studio'nun 2015 öncesi sürümleri tarafından oluşturulan kod ayrı bir Yeniden Dağıtılabilir paket gerektirir.
Birleştirme modülleri ne zaman kullanılır?
Birleştirme modülleri yalnızca sınırlı durumlarda uygundur:
- İlke nedenleriyle ayrı bir Yeniden Dağıtılabilir paket yükleyemez veya bu paketi zorunlu kılamazsınız,
- Kodunuz, kitaplıkların belirli, hatayla uyumlu bir sürümünü gerektirir,
- Kodunuz yalnızca bir platformu hedefler ve birden fazla DLL sürümüne bağımlılıklarınız yoktur.
- Kitaplıkların güncel kalması için dağıtılan kodunuz için düzenli olarak hizmet vermeyi planlıyorsunuz.
Birleştirme modüllerini kullandığınızda, uygulamanızı kitaplık güncelleştirmeleriyle izlemeniz ve düzenli olarak hizmet vermeniz gerekir. Aksi takdirde, sonunda istemcilerinizi kodunuzu çalıştırma veya güvenli kalma arasında seçim yapmaya zorlarsınız.
Birleştirme modülü dosyaları nerede bulunur?
Visual Studio 2022 ve 2019'da birleştirme modülü dosyaları, Visual Studio Yükleyicisi C++ <sürümü> Yeniden Dağıtılabilir MSM'ler adlı isteğe bağlı yüklenebilir bir bileşenin parçasıdır. Birleştirme modülleri, Visual Studio 2017 ve Visual Studio 2015'te C++ yüklemesinin bir parçası olarak varsayılan olarak yüklenir. Visual Studio 2022'ye yüklendiğinde, Visual C++ Yeniden Dağıtılabilir birleştirme modüllerini içinde %VCINSTALLDIR%Redist\MSVC\v143\MergeModules
bulabilirsiniz. Visual Studio 2019'un en son sürümünde birleştirme modülleri içindedir %VCINSTALLDIR%Redist\MSVC\v142\MergeModules
. Hem Visual Studio 2019 hem de Visual Studio 2017'de, bunlar içinde %VCToolsRedistDir%MergeModules
de bulunur. Visual Studio 2015'te bunlar içinde Program Files [(x86)]\Common Files\Merge Modules
bulunur. Daha fazla bilgi ve Yeniden Dağıtılabilir birleştirme modülleri listesinin bağlantısı için bkz . Visual C++ dosyalarını yeniden dağıtma.