Verteilen von Visual C++-Dateien
Aktualisiert: November 2007
Beim Entwickeln einer Anwendung mit Visual C++ haben Sie den Vorteil, dass Sie an einem Computer arbeiten, der nicht nur eine gute Entwicklungsumgebung bietet, sondern auch eine ideale Umgebung zum Ausführen und Testen von Anwendungen. Zur Bereitstellung einer Anwendung auf anderen Computern ist es allerdings notwendig, alle Dateien weiterzuverteilen, die zur Unterstützung der Anwendung auf dem Zielsystem erforderlich sind. Weitere Informationen darüber, welche Dateien Sie ggf. mit der Anwendung verteilen müssen, finden Sie unter Bereitstellungsbeispiele und Ermitteln der neu zu verteilenden DLLs.
Es dürfen nur bestimmte Visual C++-Dateien mit der Anwendung verteilt werden. Informationen darüber, welche Dateien mit der Anwendung verteilt werden dürfen, finden Sie in den Microsoft-Softwarelizenzbedingungen für Visual Studio 2005 und in der Datei Redist.txt. Die Datei EULA.txt finden Sie im Verzeichnis \Setup auf der ersten Visual C++ 2008-Produkt-CD bzw. -DVD. Die Datei Redist.txt befindet sich im Verzeichnis Programme\Microsoft Visual Studio 2005 auf der zweiten CD bzw. DVD.
Visual C++-Dateien lassen sich entweder mithilfe der mitgelieferten, verteilbaren Mergemodule verteilen, mit Visual C++ Redistributable Package oder durch Bereitstellen spezifischer Visual C++-Assemblys als private parallele Assemblys im lokalen Anwendungsordner.
Hinweis: |
---|
Ein lokaler Ordner einer Anwendung ist ein Ordner, der eine ausführbare Datei einer Anwendung enthält. Private parallele Assemblys müssen im lokalen Ordner der Anwendung oder einem seiner Unterordner bereitgestellt werden. Weitere Informationen über die Benennungsregeln für Unterordner mit privaten parallelen Assemblys finden Sie unter Assemblysuchsequenz. |
Im ersten Fall muss ein Mergemodul mit einer spezifischen Visual C++-Assembly im Windows Installer-Paket oder einem ähnlichen Installationspaket enthalten sein, das zur Bereitstellung dieser Anwendung auf einem anderen Computer verwendet wird. Weitere Informationen finden Sie unter Verteilen mit Mergemodulen. Ein Beispiel für diese Bereitstellung finden Sie unter Gewusst wie: Bereitstellen eines Setup- und Bereitstellungs-Projekts.
Voraussetzung für die Installation der Anwendung ist, dass Visual C++ Redistributable Package (VCRedist_x86.exe, VCRedist_x64.exe, VCRedist_ia64.exe) auf dem Zielsystem ausgeführt wird. Dieses Paket installiert und registriert alle Visual C++-Bibliotheken.
Hinweis: |
---|
Das Verteilen von Visual C++-Bibliotheken mit diesem Paket empfiehlt sich für Anwendungen, die in Visual C++ Express erstellt wurden, und wenn eine gleichzeitige Bereitstellung aller Visual C++-Bibliotheken gewünscht ist. |
Ein Beispiel zur Verwendung dieses Pakets finden Sie unter Gewusst wie: Bereitstellen mit XCopy.
Beim Bereitstellen von Visual C++-Bibliotheken als private parallele Assembly müssen alle DLL-Dateien und die Manifestdatei aus der Assembly Windows Installer oder einem vergleichbaren Installationspaket hinzugefügt werden. Sie müssen auf dem Zielcomputer in einem Unterverzeichnis des lokalen Anwendungsordners bereitgestellt werden. Dabei müssen Sie die Regeln zum Bereitstellen privater Assemblys befolgen. Informationen darüber, welche Visual C++-DLLs und Manifestdateien zu welchen Visual C++-Assemblys gehören, finden Sie unter Visual C++ Libraries as Shared Side-by-Side Assemblies. Eine Beschreibung der zu befolgenden Regeln beim Bereitstellen von privaten Assemblys, damit diese zur Laufzeit geladen werden, finden Sie unter Assemblysuchsequenz. Ein Beispiel zur Bereitstellung von Visual C++-Bibliotheken als private Assemblys finden Sie unter Gewusst wie: Bereitstellen mit XCopy.
Potenzielle Laufzeitfehler
Wenn in Ihrer Anwendung ein Manifest vorhanden ist, aber eine erforderliche Visual C++-Bibliothek im Ordner WinSxS fehlt, erhalten Sie möglicherweise eine der folgenden Fehlermeldungen, je nach Windows-Version, unter der Sie die Anwendung auszuführen versuchen:
Die Anwendung konnte nicht richtig initialisiert werden (0xc0000135).
Die Anwendung konnte nicht gestartet werden, da die Anwendungskonfiguration falsch ist. Neuinstallation der Anwendung könnte das Problem beheben.
Das System kann das angegebene Programm nicht ausführen.
Wenn in Ihrer Anwendung kein Manifest vorhanden ist, hängt die angezeigte Fehlermeldung davon ab, ob die für die Anwendung erforderliche Visual C++-Bibliothek im lokalen Anwendungsordner bereitgestellt wird oder in einem freigegebenen Ordner wie System oder WinSxS.
Hinweis: |
---|
Das Verteilen von C/C++-Anwendungen, die ohne ein Manifest erstellt wurden, wird nicht unterstützt. Visual C++-Bibliotheken können nicht von C/C++-Anwendungen verwendet werden, die über kein Manifest verfügen, das sie mit den Bibliotheken verbindet. Weitere Informationen hierzu finden Sie unter Auswählen einer Bereitstellungsmethode. |
Wenn die DLL-Datei einer Visual C++-Bibliothek (z. B. MSVCR90.DLL) erreichbar ist (d. h. entweder im lokalen Anwendungsordner oder im Systemordner installiert ist), wird möglicherweise die folgende Fehlermeldung angezeigt:
R6034 Eine Anwendung hat versucht, die C-Laufzeitbibliothek falsch zu laden.
Wenn die DLL-Datei nicht erreichbar ist und Windows sie für die Anwendung nicht laden kann, wird möglicherweise die folgende Fehlermeldung angezeigt:
Die Anwendung konnte nicht gestartet werden, da MSVCR90.dll nicht gefunden wurde. Neuinstallation der Anwendung könnte das Problem beheben.
Um diese Fehler zu beheben, müssen Sie sicherstellen, dass die Anwendung richtig erstellt wurde und die Visual C++-Bibliotheken auf dem Zielsystem ordnungsgemäß bereitgestellt wurden. Wenn Sie die Ursachen dieser Laufzeitfehler ermitteln möchten, führen Sie die unter Problembehandlung bei isolierten Anwendungen und parallelen Assemblys (C/C++) beschriebenen Schritte aus.
In diesem Abschnitt
Verteilen mit Mergemodulen
Mit verteilbaren Visual C++-Mergemodulen können Sie Visual C++-Assemblys als freigegebene parallele Assemblys im systemeigenen Assemblycache (WinSxS-Ordner) installieren.Neuverteilen von Visual C++ ActiveX-Steuerelementen
Beschreibt, wie eine Anwendung, die ActiveX-Steuerelemente verwendet, verteilt wird.Neuverteilen von Datenbankunterstützungsdateien
Erläutert, wie Unterstützungsdateien für Datenzugriffsobjekte (DAO) und die Datenbanktechnologien im Microsoft Data Access SDK weiterverteilt werden.Verteilen der MFC-Bibliothek
Beschreibt, wie eine Anwendung, die MFC verwendet, verteilt wird.Verteilen von ATL- und OLE DB-Vorlagen
Beschreibt, wie eine Anwendung, die ATL und OLE DB-Vorlagen verwendet, verteilt wird.Neuverteilen von allgemeinen Steuerelementen
Beschreibt, wie eine Anwendung verteilt wird, die die neuesten allgemeinen Windows-Steuerelemente (Comctl32.dll) verwendet, die mit der neuesten Version von Internet Explorer verfügbar sind.Verteilen einer Anwendung und Binden an bestimmte Bibliotheken
Beschreibt, wie eine Anwendung verteilt wird und wie Sie eine Anwendung an bestimmte Versionen der Visual C++-Bibliotheken binden können, sodass sie nicht auf einem Computer ausgeführt werden kann, auf dem frühere Versionen der Bibliotheken vorhanden sind.
Siehe auch
Konzepte
Problembehandlung bei isolierten Anwendungen und parallelen Assemblys (C/C++)