Visual C++ üzerinde Dağıtım
Uygulamanızın geliştirme bilgisayarınız dışındaki bir bilgisayara yüklenmesi dağıtım olarak bilinir. Bir Visual C++ uygulamasını başka bir bilgisayara dağıttığınızda, hem uygulamayı hem de bağımlı olduğu kitaplık dosyalarını yüklemeniz gerekir. Visual Studio, Visual C++ kitaplıklarını uygulamanızla birlikte dağıtmanın üç yolunu sağlar: merkezi dağıtım, yerel dağıtım ve statik bağlama. Merkezi dağıtım, kitaplık dosyalarını Tüm uygulamaların bunlara otomatik olarak erişebileceği Windows dizinine yerleştirir. Yerel dağıtım, kitaplık dosyalarını uygulamanızla aynı dizine yerleştirir. Yerel olarak dağıtılan kitaplıkları güncelleştirmek için kendiniz yeniden dağıtmanız gerekir. Statik bağlama, kitaplık kodunu uygulamanıza bağlar. Statik bağlama kullandığınızda kitaplıklarda yapılan güncelleştirmelerden yararlanmak için uygulamanızı yeniden derlemeniz ve yeniden dağıtmanız gerekir.
Visual Studio 2015'te, Microsoft C Çalışma Zamanı kitaplığı sürüme özgü yerel kitaplık bileşenleri ve artık Windows'un parçası olan yeni bir Evrensel C Çalışma Zamanı kitaplığı olarak yeniden düzenlenmiştir. Evrensel CRT dağıtımı hakkında ayrıntılı bilgi için bkz . Evrensel CRT dağıtımı.
Merkezi dağıtım
Merkezi dağıtımda, kitaplık DLL dosyaları dizinine Windows\System32
veya x64 sistemlerindeki 32 bit kitaplık dosyaları için dizinine Windows\SysWow64
yüklenir. Merkezi olarak dağıtılan kitaplık dosyaları diğer uygulamalar tarafından kullanılabilir.
Visual C++ kitaplıklarını merkezi olarak dağıtmak için, dosyaların yüklenmesi için şu iki kaynaklardan birini kullanabilirsiniz:
Yeniden dağıtılabilir paket dosyaları. Bu dosyalar, sıkıştırılmış biçimdeki tüm Visual C++ Yeniden Dağıtılabilir kitaplıklarını içeren tek başına komut satırı yürütülebilir dosyalarıdır. En son Yeniden Dağıtılabilir paketler Microsoft Visual C++ Yeniden Dağıtılabilir En Son Desteklenen İndirmeler'den edinilebilir. Merkezi dağıtım için Yeniden Dağıtılabilir paketleri kullandığınızda, Windows Update kitaplıklara bağımsız olarak hizmet verebilir.
Uygulamanızın Windows Installer () dosyasına ekleyebileceğiniz yeniden dağıtılabilir birleştirme modülleri (
.msm
.msi
dosyalar). Bu şekilde dağıtılan kitaplıklar Windows Update tarafından otomatik olarak güncelleştirilemediği için bu yöntem kullanım dışı bırakılmıştır. Daha fazla bilgi için bkz . Birleştirme modüllerini kullanarak yeniden dağıtma.
Yeniden Dağıtılabilir paket dosyası, belirli bir sistem mimarisi için tüm Visual C++ kitaplıklarını yükler. Örneğin, uygulamanız x64 için oluşturulduysa, uygulamanızın vcredist_x64.exe
kullandığı tüm Visual C++ kitaplıklarını yüklemek için paketini kullanabilirsiniz. Uygulamanızı yüklemeden önce uygulamayı önkoşul olarak çalıştırmak için uygulama yükleyicinizi programlayabilirsiniz.
Yeniden Dağıtılabilir paket kullanarak merkezi dağıtım, Windows Update'in Visual C++ kitaplıklarını otomatik olarak güncelleştirmesini sağlar. Sürekli güvenlik ve işlevsellik için, statik kitaplıklar yerine uygulamanızda kitaplık DLL'lerini ve yerel dağıtım yerine Yeniden Dağıtılabilir paketleri ve merkezi dağıtımı kullanmanızı öneririz.
Yerel dağıtım
Yerel dağıtımda, kitaplık dosyaları yürütülebilir dosyayla birlikte uygulama klasörünüzde yüklenir. Her sürümün dosya adı kendi sürüm numarasını içerdiğinden, Visual C++ Yeniden Dağıtılabilir kitaplıklarının farklı sürümleri aynı klasöre yüklenebilir. Örneğin, C++ çalışma zamanı kitaplığının sürüm 12'si ve msvcp120.dll
sürüm 14'tür msvcp140.dll
.
Bir kitaplıkta genişletmeler, nokta kitaplıkları olarak bilinen birden çok ek DLL'ye yayılabilir. Örneğin, Visual Studio 2017 sürüm 15.6'da yayımlanan standart kitaplıktaki bazı işlevler, ABI uyumluluğunu msvcp140.dll
korumak için içine msvcp140_1.dll
eklenmiştir. Visual Studio 2017 sürüm 15.6 (araç takımı 14.13) veya üzerini kullanıyorsanız, hem bu nokta kitaplıklarını hem de ana kitaplığı yerel olarak dağıtmanız gerekebilir. Abi değiştiğinde bu ayrı nokta kitaplıkları sonunda temel kitaplığa eklenir.
Microsoft yerel olarak dağıtılan Visual C++ kitaplıklarını otomatik olarak güncelleştiremediğinden, bu kitaplıkların yerel olarak dağıtılmalarını önermeyiz. Yeniden dağıtılabilir kitaplıkların yerel dağıtımını kullanmaya karar verirseniz, yerel olarak dağıtılan kitaplıkları otomatik olarak güncelleştirmek için kendi yönteminizi uygulamanızı öneririz.
Statik bağlama
Dinamik olarak bağlı kitaplıklara ek olarak, Visual Studio kitaplıklarının çoğunu statik kitaplıklar olarak sağlar. Statik bir kitaplığı uygulamanıza statik olarak bağlayabilirsiniz; diğer bir ifadeyle kitaplık nesne kodunu doğrudan uygulamaya bağlayabilirsiniz. Statik bağlama, DLL bağımlılığı olmadan tek bir ikili dosya oluşturur, böylece Visual C++ kitaplık dosyalarını ayrı olarak dağıtmanız gerekmez. Ancak statik olarak bağlı kitaplıklar yerinde güncelleştirilemediği için bu yaklaşımı önermiyoruz. Statik bağlama kullanırken bağlı kitaplığı güncelleştirmek için uygulamanızı yeniden derlemeniz ve yeniden dağıtmanız gerekir.
Dağıtım sorunlarını giderme
Visual C++ kitaplıklarının yük sırası sisteme bağlıdır. Yükleyici sorunlarını tanılamak için veya where.exe
kullanındepends.exe
. Daha fazla bilgi için bkz . Dinamik bağlantı kitaplığı arama sırası (Windows).