Redistribuir una aplicación y enlazarla a bibliotecas específicas

Actualización: Julio de 2008

Las bibliotecas de Visual Studio se suelen actualizar con una nueva versión. Por ejemplo, esto se puede producir al instalar un Service Pack. Las aplicaciones diseñadas con las bibliotecas actualizadas pueden depender de algunas modificaciones realizadas en las últimas versiones. Es posible que la aplicación actúe de manera inesperada si se transfiere a un usuario que no ha instalado las mismas bibliotecas. Para crear una protección ante este comportamiento inesperado, puede enlazar la aplicación a una versión concreta de las bibliotecas.

Comportamiento predeterminado del enlace

En esta sección se describe el comportamiento predeterminado de las aplicaciones compiladas con Visual C++ 2008 y versiones posteriores. Al compilar una aplicación, se enlaza a la versión de lanzamiento original disponible de las bibliotecas. Esto se cumple aunque se disponga de una versión posterior instalada en el equipo. Por ejemplo, aunque tenga Visual C++ 2008 SP1 instalado en el equipo, cualquier aplicación que compile en este equipo seguirá dependiendo de la versión de lanzamiento original de Visual C++ 2008.

Este comportamiento no tiene ninguna consecuencia si implementa la aplicación mediante una instalación en una ubicación central. Al usar este esquema de distribución, el usuario final siempre dispondrá de las últimas bibliotecas. Sin embargo, si utiliza un método de implementación local, por ejemplo mediante ensamblados privados tal y como se describe en el tema Cómo: Implementar mediante XCopy, este comportamiento es importante.

El comportamiento predeterminado del enlace permite volver a compilar el programa después de obtener una nueva versión y permite distribuir el nuevo ejecutable. Los usuarios finales que ya tienen instaladas las bibliotecas necesarias solo precisarán el nuevo ejecutable; no será necesario empaquetar y volver a instalar las últimas bibliotecas.

Nota:

Si la aplicación depende de la funcionalidad presentada en la última versión, debe distribuir y volver a instalar las nuevas bibliotecas; de otro modo la aplicación no se ejecutará.

Cómo enlazar a versiones específicas

Si desea forzar la aplicación para que requiera la instalación de las últimas bibliotecas en el equipo, utilice una o varias de las siguientes líneas de código:

#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;

Utilice la siguiente línea de código para enlazar la aplicación a la versión actual de todas las bibliotecas de Visual C++. Ésta es una unión de todas las líneas de código anteriores.

#define _BIND_TO_CURRENT_VCLIBS_VERSION 1;
Nota:

Recomendamos que defina estas macros en la línea de comandos. Si prefiere incluir las definiciones en el código, debe hacerlo en el mismo inicio de cada unidad de compilación, como por ejemplo en las primeras líneas de stdafx.h.

Al enlazar la aplicación a un conjunto de bibliotecas, no se ejecutará en un equipo con una versión anterior de éstas. Si enlaza la aplicación a una versión mínima específica, se recomienda distribuir la aplicación junto con la versión necesaria de las bibliotecas.

Vea también

Conceptos

Redistribuir archivos de Visual C++

Historial de cambios

Fecha

Historial

Motivo

Julio de 2008

Se ha agregado un tema.

Cambio de características de SP1.