Verteilen einer Anwendung und Binden an bestimmte Bibliotheken

Aktualisiert: Juli 2008

Die Bibliotheken für Visual Studio werden nach der Veröffentlichung häufig aktualisiert. Dies ist zum Beispiel der Fall, wenn Sie ein Service Pack installieren. Anwendungen, die mit den aktualisierten Bibliotheken entwickelt wurden, sind von einigen Änderungen in diesen aktuellen Versionen abhängig. Die Anwendungen können daher unerwartet reagieren, wenn Sie diese an einen Benutzer übertragen, der nicht die gleichen Bibliotheken installiert hat. Um ein solches unerwartetes Verhalten zu verhindern, können Sie die Anwendung an eine spezifische Version der Bibliotheken binden.

Standardbindungsverhalten

In diesem Abschnitt wird das Standardverhalten von Anwendungen beschrieben, die mit Visual C++ 2008 oder neueren Versionen kompiliert wurden. Wenn Sie eine Anwendung kompilieren, wird diese an die Originalversion der verfügbaren Bibliotheken gebunden. Dies gilt auch dann, wenn auf dem Computer eine aktuellere Version installiert ist. Wenn auf dem Computer beispielsweise Visual C++ 2008 SP1 installiert ist, basieren alle auf diesem Computer kompilierten Anwendungen weiterhin auf der Originalversion von Visual C++ 2008.

Dieses Verhalten hat keine Auswirkungen, wenn Sie die Anwendung durch Installation an einer zentralen Position bereitstellen. Bei diesem Verteilungsschema stehen dem Endbenutzer immer die aktuellsten Bibliotheken zur Verfügung. Wenn Sie jedoch eine lokale Bereitstellungsmethode verwenden, wie z. B. bei privaten Assemblys (siehe Gewusst wie: Bereitstellen mit XCopy), dann muss dieses Verhalten berücksichtigt werden.

Das Standardbindungsverhalten ermöglicht Ihnen, eine Anwendung nach Erhalt einer aktuellen Version neu zu kompilieren und die neue ausführbare Datei zu verteilen. Die Endbenutzer, die bereits die erforderlichen Bibliotheken installiert haben, benötigt lediglich die neue ausführbare Datei. Sie müssen die aktuellen Bibliotheken in diesem Fall nicht einschließen und neu installieren.

Hinweis:

Wenn die Anwendung Funktionen verwendet, die erst in der aktuellen Version eingeführt wurden, müssen Sie die neuen Bibliotheken in das Paket einschließen und neu installieren. Andernfalls kann die Anwendung nicht ausgeführt werden.

So binden Sie eine Anwendung an bestimmte Versionen

Wenn für eine Anwendung zwingend die aktuellen Bibliotheken auf dem Computer installiert sein müssen, geben Sie eine oder mehrere der folgenden Codezeilen an:

#define _BIND_TO_CURRENT_CRT_VERSION 1;
#define _BIND_TO_CURRENT_ATL_VERSION 1;
#define _BIND_TO_CURRENT_MFC_VERSION 1;
#define _BIND_TO_CURRENT_OPENMP_VERSION 1;

Verwenden Sie die folgende Codezeile, um die Anwendung an die aktuelle Version aller Visual C++-Bibliotheken zu binden. Dies ist eine Zusammenstellung aller vorherigen Codezeilen.

#define _BIND_TO_CURRENT_VCLIBS_VERSION 1;
Hinweis:

Es wird empfohlen, diese Makros auf Befehlszeilenebene zu definieren. Wenn Sie die Definitionen lieber in den Code einschließen, müssen Sie diese am Anfang jeder Kompilierungseinheit platzieren, z. B. als erste Zeile in stdafx.h.

Wenn Sie eine Anwendung an mehrere Bibliotheken binden, kann diese auf einem Computer mit älteren Versionen dieser Bibliotheken nicht ausgeführt werden. Haben Sie eine Anwendung an eine bestimmte Mindestversion gebunden, sollten Sie die Anwendung zusammen mit der erforderlichen Version der Bibliotheken ausliefern.

Siehe auch

Konzepte

Verteilen von Visual C++-Dateien

Änderungsprotokoll

Date

Versionsgeschichte

Grund

Juli 2008

Zusätzliches Thema.

SP1-Featureänderung.