Aracılığıyla paylaş


Hangi DLL'lerin yeniden dağıtılacağını belirleme

Visual Studio tarafından sağlanan kitaplık DLL'lerini kullanan bir uygulama oluşturduğunuzda, uygulamanın çalışması için uygulamanızın kullanıcılarının da bu DLL'leri bilgisayarlarında olması gerekir. Kullanıcıların çoğunda Visual Studio yüklü olmadığından, bunlar için bu DLL'leri sağlamanız gerekir. Visual Studio, bu DLL'leri uygulama yükleyicinize ekleyebileceğiniz Yeniden Dağıtılabilir dosyalar olarak kullanılabilir hale getirir.

Yeniden Dağıtılabilir DLL'leri yükleyicinize eklemeyi kolaylaştırmak için bunlar tek başına Yeniden Dağıtılabilir paketler olarak kullanılabilir. Bu paketler, bir kullanıcının bilgisayarına Yeniden Dağıtılabilir dosyaları yüklemek için merkezi dağıtım kullanan mimariye özgü yürütülebilir dosyalardır. Örneğin, vc_redist.x86.exe hem x86 hem de x64 bilgisayarlar için 32 bit kitaplıkları yükler, vc_redist.x64.exe x64 bilgisayarlar için 64 bit kitaplıkları yükler ve ARM ve vcredist.ARM64.exe ARM64 bilgisayarları için kitaplıkları yükler. Microsoft bu kitaplıkları bağımsız olarak güncelleştirmek için Windows Update hizmetini kullanabileceğinden merkezi dağıtım önerilir. Visual Studio yüklemenizdeki kopyaya ek olarak, geçerli Yeniden Dağıtılabilir paketler indirilebilir. Hem geçerli hem de eski araç kümeleri için desteklenen en son Yeniden Dağıtılabilir paketlerin bağlantıları için bkz. Desteklenen en son Visual C++ Yeniden Dağıtılabilir indirmeleri. Yeniden Dağıtılabilir paketlerin belirli önceki sürümleri "Visual C++ Yeniden Dağıtılabilir Paketleri" araması yaparak my.visualstudio.com bulunabilir.

Yeniden Dağıtılabilir DLL'leri yükleyicinize eklemeyi kolaylaştırmak için bunlar tek başına Yeniden Dağıtılabilir paketler olarak kullanılabilir. Bu paketler, bir kullanıcının bilgisayarına Yeniden Dağıtılabilir dosyaları yüklemek için merkezi dağıtım kullanan mimariye özgü yürütülebilir dosyalardır. Örneğin, vcredist_x86.exe hem x86 hem de x64 bilgisayarlar için 32 bit kitaplıkları yükler, vcredist_x64.exe x64 bilgisayarlar için 64 bit kitaplıkları yükler ve vcredist_ARM.exe ARM bilgisayarları için kitaplıkları yükler. Microsoft bu kitaplıkları bağımsız olarak güncelleştirmek için Windows Update hizmetini kullanabileceğinden merkezi dağıtım önerilir. Visual Studio yüklemenizdeki kopyaya ek olarak, geçerli Yeniden Dağıtılabilir paketler indirilebilir. Hem geçerli hem de eski araç kümeleri için desteklenen en son Yeniden Dağıtılabilir paketlerin bağlantıları için bkz . Desteklenen en son Visual C++ indirmeleri. Yeniden Dağıtılabilir paketlerin belirli önceki sürümleri "Visual C++ Yeniden Dağıtılabilir Paketleri" araması yaparak my.visualstudio.com bulunabilir.

Yalnızca araç takımı sürümünüzle aynı veya daha yeni bir Yeniden Dağıtılabilir paketin kullanılmasını destekliyoruz. Dağıtacağınız Yeniden Dağıtılabilir paketin ana sürüm numarası, uygulamanızı oluşturmak için kullanılan Visual Studio araç takımının sürümüyle eşleşmelidir ve ikincil sürüm aynı veya daha yüksek olmalıdır. Visual Studio 2022, 2019, 2017 ve 2015'in tümü uyumlu araç takımı sürüm numaralarına sahiptir. Bu sürümler için, daha yeni visual studio yeniden dağıtılabilir dosyaları eski bir sürümden bir araç takımı tarafından oluşturulan uygulamalar tarafından kullanılabilir. Örneğin, Visual Studio 2022 Yeniden Dağıtılabilir dosyaları Visual Studio 2017 veya 2015 araç takımı kullanılarak oluşturulan uygulamalar tarafından kullanılabilir. Uyumlu olsalar da, daha yeni bir araç takımı kullanılarak oluşturulan uygulamalarda eski Yeniden Dağıtılabilir dosyaların kullanılmasını desteklemiyoruz. Örneğin, 2019 araç takımı kullanılarak oluşturulan uygulamalarda 2017 Yeniden Dağıtılabilir dosyalarının kullanılması desteklenmez.

Yeniden Dağıtılabilir DLL'leri birleştirme modüllerine yükleyicinizle birlikte eklemek de mümkündür. Bu şekilde dağıtılan kitaplıklar Windows Update tarafından otomatik olarak güncelleştirilemediği için bu yöntem artık kullanım dışı bırakılmıştır. Yeniden dağıtılabilir birleştirme modülleri veya Microsoft Installer modülleri (.msmdosyalar), Visual Studio Yükleyicisi isteğe bağlı bileşenlerdir. Yüklendiğinde, Yeniden Dağıtılabilir DLL'ler için birleştirme modülleri Visual Studio yükleme dizininizde altında %VCToolsRedistDir%\MergeModules\bulunur. Visual Studio 2015 ve Visual Studio'nun önceki sürümlerinde, bu dosyalar bir Common Files\Merge Modules alt dizindeki Program Dosyaları veya Program Dosyaları (x86) dizininizde bulunur. Bu dosyaların kullanımı hakkında daha fazla bilgi için bkz . Birleştirme Modüllerini kullanarak bileşenleri yeniden dağıtma.

Tek tek Yeniden Dağıtılabilir DLL'ler de Visual Studio yüklemenize dahil edilir. Varsayılan olarak, hedef mimariyi [toolset] temsil eden, [architecture] araç takımı sürümünü ve [library] kitaplığı temsil eden Visual %VCToolsRedistDir%\[architecture]\Microsoft.[toolset].[library] the klasörlerine yüklenirler.

Yeniden Dağıtılabilir DLL'leri birleştirme modüllerine yükleyicinizle birlikte eklemek de mümkündür. Bu şekilde dağıtılan kitaplıklar Windows Update tarafından otomatik olarak güncelleştirilemediği için bu yöntem artık kullanım dışı bırakılmıştır. Yeniden Dağıtılabilir DLL'ler için yeniden dağıtılabilir birleştirme modülleri, bir Common Files\Merge Modules alt dizindeki Program Dosyaları veya Program Dosyaları (x86) dizininizde bulunur. Bu dosyaların kullanımı hakkında daha fazla bilgi için bkz . Birleştirme Modüllerini kullanarak bileşenleri yeniden dağıtma.

Tek tek Yeniden Dağıtılabilir DLL'ler de Visual Studio yüklemenize dahil edilir. Varsayılan olarak, hedef mimariyi [toolset] temsil eden, [architecture] araç takımı sürümünü temsil eden ve [library] hata ayıklama DLL'lerini içeren Hata Ayıklama kitaplığı olan klasörlerdeki redist\debug_nonredist\[architecture]\Microsoft.[toolset].[library] Visual Studio 2015 yükleme dizinine yüklenir.

Bu dizinlerde bulunan herhangi bir kitaplık DLL dosyasının, Yeniden Dağıtılabilir paketinin veya birleştirme modülünün en son sürümünü kullanın. Bu kitaplıkları uygulamanızla aynı dizine yükleyerek yerel dağıtım için kullanabilirsiniz. Dağıtılan uygulamalarınıza güncelleştirmeleri teslim etme sorumluluğunu size sağladığından yerel dağıtım önermiyoruz. Yeniden dağıtılabilir paketleri kullanarak merkezi dağıtım tercih edilir.

Uygulamanızla yeniden dağıtmanız gereken DLL'leri belirlemek için, uygulamanızın bağımlı olduğu DLL'lerin listesini toplayın. Bu DLL'ler normalde bağlayıcıya içeri aktarma kitaplığı girişleri olarak listelenir. vcruntime ve Universal C Çalışma Zamanı Kitaplığı (UCRT) gibi bazı kitaplıklar varsayılan olarak eklenir. Uygulamanız veya bağımlılıklarından biri DLL'yi dinamik olarak yüklemek için kullanıyorsa LoadLibrary , bu DLL bağlayıcının girişlerinde listelenmeyebilir. Dinamik olarak yüklenen DLL'lerin listesini toplamanın bir yolu, Visual C++ Uygulamasının Bağımlılıklarını Anlama bölümünde açıklandığı gibi uygulamanızda Dependency Walker'ı (depends.exe) çalıştırmaktır. Ne yazık ki bu araç eski ve belirli DLL'leri bulamadığını bildirebilir.

Bağımlılıkların listesine sahip olduğunuzda, bunu Microsoft Visual Studio yükleme dizini altında bulunan dosyada Redist.txt bağlantılı listeyle karşılaştırın. Alternatif olarak, Visual Studio kopyanız için Microsoft Yazılım Lisans Koşulları'nın "Dağıtılabilir Kod Dosyaları" bölümünde başvuruda bulunılan Yeniden Dağıtılabilir DLL'lerin "REDIST listesine" de bakabilirsiniz. Visual Studio 2022 için bkz . Visual Studio 2022 için Dağıtılabilir Kod. Visual Studio 2019 için bkz . Visual Studio 2019 için Dağıtılabilir Kod. Visual Studio 2017 için bkz . Microsoft Visual Studio 2017 için Dağıtılabilir Kod (Yardımcı Programlar, Genişletilebilirlik ve BuildServer Dosyaları içerir). Visual Studio 2015 için bkz . Microsoft Visual Studio 2015 ve Microsoft Visual Studio 2015 SDK'sı için Dağıtılabilir Kod (Yardımcı Programları ve BuildServer Dosyalarını içerir). Visual Studio 2013 için liste, Microsoft Visual Studio 2013 ve Microsoft Visual Studio 2013 SDK'sı için Dağıtılabilir Kod'da çevrimiçi olarak kullanılabilir.

Visual Studio 2015'in önceki Visual Studio sürümlerinde, C Çalışma Zamanı Kitaplığı (CRT) içinde yeniden dağıtılabilir DLL msvc[version].dllolarak eklenmiştir. Visual Studio 2015'te, CRT'deki işlevler vcruntime ve UCRT olarak yeniden düzenlenmiştir. UCRT artık Windows Update tarafından yönetilen Windows 10 ve sonraki sürümlerde bir sistem bileşenidir. Tüm Windows 10 ve üzeri işletim sistemlerinde kullanılabilir. Uygulamanızı önceki işletim sistemlerine dağıtmak için UCRT'yi de yeniden dağıtmanız gerekebilir. Visual Studio Yeniden Dağıtılabilir dosyalarına UCRT'nin erken bir sürümü dahildir. Bu sürüm yalnızca Windows 10'dan önceki işletim sistemlerinde ve yalnızca UCRT'nin herhangi bir sürümü yüklü değilse yüklenir. Microsoft Sistem Güncelleştirmesi paketi olarak alt düzey sistemler için UCRT'nin yüklenebilir bir sürümü için Bkz . Microsoft İndirme Merkezi'nde Windows 10 Universal C Çalışma Zamanı .

Visual Studio'da bulunan tüm dosyaları yeniden dağıtamazsınız. Yalnızca veya çevrimiçi "DAĞITIM listesi" içinde Redist.txt belirtilen dosyaları yeniden dağıtmanıza izin verilir. Ayrıca, uygulamalarınızın hata ayıklama sürümlerini veya Microsoft tarafından sağlanan DLL'lerin veya kitaplıkların hata ayıklama sürümlerini yeniden dağıtamazsınız. Hata ayıklama yürütülebilir dosyalarını ve kitaplıklarını yalnızca test için kullandığınız makinelere kopyalayabilirsiniz. Daha fazla bilgi için bkz . Dağıtım yöntemi seçme.

Aşağıdaki tabloda, uygulamanızın bağlı olabileceği Bazı Visual C++ DLL'leri açıklanmaktadır.

Visual C++ Kitaplığı Açıklama Şunlara uygulanır
vcruntime[version].dll Yerel kod için Çalışma Zamanı Kitaplığı. Normal C ve C++ dil başlatma ve sonlandırma hizmetlerini kullanan uygulamalar.
vccorlib[version].dll Yönetilen kod için Çalışma Zamanı Kitaplığı. Yönetilen kod için C++ dil hizmetlerini kullanan uygulamalar.
msvcp[version].dll ve msvcp[version_dotnumber].dll Yerel kod için C++ Standart Kitaplığı. C++ Standart Kitaplığını kullanan uygulamalar.
concrt[version].dll Yerel kod için Eşzamanlılık Çalışma Zamanı Kitaplığı. Eşzamanlılık Çalışma Zamanı kullanan uygulamalar.
mfc[version].dll Microsoft Foundation Sınıfları (MFC) Kitaplığı. MFC Kitaplığı'nı kullanan uygulamalar.
mfc[version][language].dll Microsoft Foundation Sınıfları (MFC) Kitaplık Kaynakları. MFC için belirli dil kaynaklarını kullanan uygulamalar.
mfc[version]u.dll Unicode desteğine sahip MFC Kitaplığı. MFC Kitaplığı'nı kullanan ve Unicode desteği gerektiren uygulamalar.
mfcmifc80.dll MFC Yönetilen Arabirimler Kitaplığı. Windows Forms Denetimleri ile MFC Kitaplığı'nı kullanan uygulamalar.
mfcm[version].dll MFC Yönetilen Kitaplığı. Windows Forms Denetimleri ile MFC Kitaplığı'nı kullanan uygulamalar.
mfcm[version]u.dll Unicode desteğine sahip MFC Yönetilen Kitaplığı. Windows Forms Denetimleri ile MFC Kitaplığı'nı kullanan ve Unicode desteği gerektiren uygulamalar.
vcamp[version].dll Yerel kod için AMP Kitaplığı. C++ AMP kitaplık kodunu kullanan uygulamalar.
vcomp[version].dll Yerel kod için OpenMP Kitaplığı. C++ OpenMP kitaplık kodunu kullanan uygulamalar.

Not

Artık Etkin Şablon Kitaplığı'nı ayrı bir DLL olarak yeniden dağıtmanız gerekmez. İşlevselliği üst bilgiler ve statik bir kitaplığa taşındı.

Bu DLL'leri uygulamanızla yeniden dağıtma hakkında daha fazla bilgi için bkz . Visual C++ dosyalarını yeniden dağıtma. Örnekler için bkz . Dağıtım örnekleri.

Genellikle, işletim sisteminin bir parçası olduklarından sistem DLL'lerini yeniden dağıtmanız gerekmez. Ancak, örneğin uygulamanızın Microsoft işletim sistemlerinin çeşitli sürümlerinde çalıştırılacağı durumlar olabilir. Bu durumda ilgili lisans koşullarını okuduğunuzdan emin olun. Ayrıca, Windows Update, hizmet paketleri veya Microsoft tarafından sunulan Yeniden Dağıtılabilir paketleri kullanarak yükseltilen sistem DLL'lerini almayı deneyin.

Ayrıca bkz.

Dağıtım yöntemi seçme
Masaüstü uygulamalarını dağıtma