Visual C++ içinde paylaşılan C çalışma zamanı bileşeninin yeniden dağıtılma

Bu makalede, Visual C++'da paylaşılan C çalışma zamanı bileşeninin nasıl yeniden dağıtıldığı açıklanır.

Orijinal ürün sürümü: Visual Studio, .NET Framework
Özgün KB numarası: 326922

Özet

Microsoft Visual Studio'da bir uygulama oluşturduğunuzda ve uygulama C çalışma zamanı kitaplıklarını (CRT) kullandığında, aşağıdaki listeden uygun CRT dinamik bağlantı kitaplığını (DLL) uygulamanızla dağıtın:

  • Microsoft Visual C++ 2008 için Msvcr90.dll
  • Microsoft Visual C++ 2005 için Msvcr80.dll
  • Microsoft .NET Framework 1.1 ile Microsoft Visual C++ .NET 2003 için Msvcr71.dll
  • Microsoft .NET Framework 1.0 ile Microsoft Visual C++ .NET 2002 için Msvcr70.dll

Msvcr70.dll veya Msvcr71.dll için, CRT DLL'yi uygulama programı dosyaları dizininize yüklemeniz gerekir. Bu dosyaları Windows sistem dizinlerine yükleyemezsiniz. Msvcr80.dll ve Msvcr90.dll için CRT'yi Windows yan yana derlemeler olarak yüklemeniz gerekir.

DLL çakışması

Paylaşılan CRT DLL geçmişte Microsoft tarafından paylaşılan bir sistem bileşeni olarak dağıtılmıştır. CRT DLL'nin doğru sürümleri yüklü olmayan bilgisayarlarda CRT'nin farklı bir sürümüne bağlı uygulamaları çalıştırdığınızda sorunlara neden olabilir. Genellikle DLL Çakışması sorunu olarak adlandırılır.

Bu sorunu gidermek için, CRT DLL artık bir sistem dosyası olarak kabul edilmez, bu nedenle CRT DLL'yi buna bağlı olan herhangi bir uygulamayla dağıtın. Artık bir sistem bileşeni olmadığından, uygulamanıza özgü diğer kodlarla program dosyaları dizininize yükleyin. Bu, uygulamanızın sistem yollarına yüklenebilen CRT kitaplığının diğer sürümlerini kullanmasını engeller.

Visual C++ .NET 2003 veya Visual C++ .NET 2002, CRT DLL'yi bir geliştirme sistemine System32 dizinine yükler. Bu, geliştirici için kolaylık sağlamak için yüklenir. Aksi takdirde, paylaşılan CRT'ye bağlanan Visual C++ ile oluşturulan tüm projeler, hata ayıklama ve yürütme için derleme dizininde DLL'nin bir kopyasını gerektirir. Visual C++ 2005 ve Visual C++ 2008, CRT DLL'yi Windows XP ve sonraki işletim sistemlerine windows yan yana derleme olarak yükler. Windows 2000 yan yana derlemeleri desteklemez. Windows 2000'de, CRT DLL System32 dizinine yüklenir.

CRT DLL'sinde Paylaşılan CRT kitaplığı gerektiren uygulamaları dağıtırken, DLL dosyasını doğrudan dağıtmak yerine Visual C++ ile birlikte gelen CRT.msm birleştirme modülünü kullanmanızı öneririz.

Windows yan yana derlemeler

Visual C++ 2005 ile Msvcr80.dll ve Visual C++ 2008 ile Msvcr90.dll, Windows 2000 dışında Windows yan yana derlemeleri olarak yeniden dağıtılır. Visual Studio'nun içerdiği Vcredist_x86.exe uygulamasını çalıştırarak hedef bilgisayarlara CRT'nin bu sürümlerini yükleyebilirsiniz. x64 ve IA-64 platformları için yükleyiciler de vardır. Bunun yerine, CRT yükleyicisini kendi kurulum uygulamanıza paketlemek için Visual Studio ile birlikte sağlanan CRT msm birleştirme modülünü kullanabilirsiniz. CRT, desteklenen işletim sistemlerinde dizinine yüklendiğinden \windows\winsxs , CRT'yi tüm uygulamalar için paylaşılan bir derleme olarak kullanılabilir hale getirir.

Başvurular