Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Dieser Artikel beschreibt, wie die gemeinsame C-Laufzeitkomponente in Visual C++ verteilt werden kann.
Ursprüngliche Produktversion: Visual Studio, .NET Framework
Ursprüngliche KB-Nummer: 326922
Zusammenfassung
Wenn Sie eine Anwendung in Microsoft Visual Studio erstellen und die Anwendung die C-Laufzeitbibliotheken (CRT) verwendet, verteilen Sie die passende CRT-Dynamic Link Library (DLL) aus der folgenden Liste mit Ihrer Anwendung.
- Msvcr90.dll für Microsoft Visual C++ 2008
- Msvcr80.dll für Microsoft Visual C++ 2005
- Msvcr71.dll für Microsoft Visual C++ .NET 2003 mit dem Microsoft .NET Framework 1.1
- Msvcr70.dll für Microsoft Visual C++ .NET 2002 mit dem Microsoft .NET Framework 1.0
Für Msvcr70.dll oder Msvcr71.dll sollten Sie die CRT-DLL in das Verzeichnis der Anwendungsprogrammdateien installieren. Sie dürfen diese Dateien nicht in die Windows-Systemverzeichnisse installieren. Für Msvcr80.dll und Msvcr90.dll sollten Sie die CRT als Windows-Side-by-Side-Assemblys installieren.
DLL-Konflikt
Die gemeinsam genutzte CRT-DLL wurde in der Vergangenheit von Microsoft als gemeinsames Systemkomponente verteilt. Es kann zu Problemen führen, wenn Sie Anwendungen ausführen, die mit einer anderen Version des CRT verknüpft sind, auf Computern, die nicht die richtigen Versionen der CRT-DLL installiert haben. Es wird häufig als das DLL-Konflikt-Problem bezeichnet.
Um dieses Problem zu lösen, wird die CRT-DLL nicht mehr als Systemdatei betrachtet. Daher sollte die CRT-DLL zusammen mit jeder Anwendung, die davon abhängt, verteilt werden. Da es nicht mehr eine Systemkomponente ist, installieren Sie es im Programmdateiverzeichnis Ihrer Anwendung zusammen mit anderem anwendungsspezifischen Code. Was Ihre Anwendung daran hindert, andere Versionen der CRT-Bibliothek zu verwenden, die möglicherweise in den Systempfaden installiert sind.
Visual C++ .NET 2003 oder Visual C++ .NET 2002 installiert die CRT-DLL im System32-Verzeichnis auf einem Entwicklungssystem. Das zur Bequemlichkeit des Entwicklers installiert wird. Andernfalls benötigen alle Projekte, die mit Visual C++ erstellt wurden und mit der gemeinsam genutzten CRT verbunden sind, eine Kopie der DLL im Build-Verzeichnis zur Fehlersuche und Ausführung. Visual C++ 2005 und Visual C++ 2008 installieren die CRT-DLL als Windows-Side-by-Side-Assembly auf Windows XP und neueren Betriebssystemen. Windows 2000 unterstützt keine nebeneinander bestehenden Assemblies. Auf Windows 2000 wird die CRT-DLL im System32-Verzeichnis installiert.
Wenn Sie Anwendungen verteilen, die die Shared CRT-Bibliothek in der CRT-DLL erfordern, empfehlen wir, das CRT.msm-Mergemodul zu verwenden, das mit Visual C++ geliefert wird, anstatt die DLL-Datei direkt zu verteilen.
Parallele Windows-Assemblierungen
Die Datei Msvcr80.dll mit Visual C++ 2005 und die Datei Msvcr90.dll mit Visual C++ 2008 werden als Windows-Side-by-Side-Assemblies neu verteilt, außer auf Windows 2000. Sie können diese Versionen der CRT auf Zielcomputern installieren, indem Sie die Vcredist_x86.exe-Anwendung ausführen, die in Visual Studio enthalten ist. Es gibt auch Installationsprogramme für die x64- und IA-64-Plattformen. Stattdessen können Sie das CRT MSM-Merge-Modul verwenden, das mit Visual Studio geliefert wird, um den CRT-Installer in Ihre eigene Setup-Anwendung einzubinden. Dadurch wird die CRT als gemeinsame Baugruppe allen Anwendungen zur Verfügung gestellt, da sie im \windows\winsxs
-Verzeichnis auf unterstützten Betriebssystemen installiert ist.