Elegir un método de implementación
Se recomienda el uso de Windows Installer para la implementación. Windows Installer admite la instalación, la reparación y la desinstalación, y también admite la actualización atómica de archivos, dependencias y entradas del Registro de una aplicación. A menos que la aplicación de Visual C++ sea independiente y se pueda implementar mediante un comando de copia, use Windows Installer.
Nota:
Aunque la implementación ClickOnce para las aplicaciones nativas de Visual C++ sea posible en Visual Studio, requiere ciertos pasos adicionales. Para más información, vea Implementación de ClickOnce para aplicaciones de Visual C++.
Las bibliotecas de Visual C++ son archivos DLL compartidos
Puesto que el instalador de Visual Studio instala las bibliotecas de Visual C++ en el directorio %windir%\system32\
, cuando se desarrolla una aplicación de Visual C++ que depende de ellas, se ejecuta de la forma esperada. Pero la mayoría de los equipos no tienen Visual Studio instalado. Para implementar la aplicación en estos equipos, se recomienda asegurarse de que las bibliotecas se instalan junto con la aplicación.
Bibliotecas redistribuibles de Visual C++
En las implementaciones, puede redistribuir cualquier versión de una biblioteca de Visual C++ que está licencia de redistribución. He aquí tres maneras de implementarlas:
Implementación central mediante paquetes de Visual C++ Redistributable. Este es el enfoque que se recomienda. Un paquete de Visual C++ Redistributable es un archivo ejecutable que instala las bibliotecas de Visual C++ como archivos DLL compartidos en
%windir%\system32\
. (La instalación en esta carpeta requiere derechos de administrador). Puede crear un programa de arranque, un script o programa de instalación que ejecute el paquete Redistributable antes de instalar la aplicación en el equipo de destino. Los paquetes Redistributable están disponibles para las plataformas x86, x64, ARM64 y ARM. Para más información sobre dónde encontrar los archivos de paquete, vea Buscar los archivos redistribuibles. Para información sobre cómo usar un paquete Redistributable, vea Tutorial: implementación de una aplicación de Visual C++ mediante el paquete Visual C++ Redistributable.Implementación central mediante módulos de combinación. Este método está en desuso porque las bibliotecas implementadas de esta manera no se pueden actualizar de forma automática mediante Windows Update. Puede usar módulos de combinación para instalar una biblioteca Visual C++ determinada como una DLL compartida en
%windir%\system32\
. (La instalación en esta carpeta requiere derechos de administrador). Los módulos de combinación se convierten en el archivo.msi
del instalador de la aplicación. Como han quedado en desuso, los módulos de combinación de Visual C++ Redistributable son un componente opcional que se puede instalar en Visual Studio 2022 y 2019. Se instalan de forma predeterminada en Visual Studio 2017 y 2015. Para más información, vea Dónde buscar archivos de módulo de combinación.Implementación local. La implementación local no se recomienda en la mayoría de las situaciones. En la implementación local, se copian determinados archivos DLL de Visual C++ desde la instalación de Visual Studio (normalmente en
\%VCINSTALLDIR%Redist\MSVC\<version>\<target-platform>\
) y se instalan en los equipos de destino en la misma carpeta que el archivo ejecutable de la aplicación. Puede usar este método de implementación para habilitar la instalación por parte de usuarios que no tienen derechos de administrador. O para las aplicaciones que se pueden ejecutar desde un dispositivo extraíble o un recurso compartido de red.
Si una implementación usa módulos de combinación Redistributable, el usuario que instala la aplicación debe tener derechos administrativos. De lo contrario, los archivos DLL de Visual C++ no están instalados y es posible que la aplicación no se ejecute. Los instaladores de aplicación que permiten la instalación por usuario instalan las bibliotecas en una ubicación compartida que afecta a todos los usuarios del sistema. Puede usar la implementación local para instalar los archivos DLL de Visual C++ necesarios en el directorio de la aplicación de un usuario determinado. Este enfoque no afectará a otros usuarios ni requerirá derechos de administrador. Esto puede crear problemas de mantenimiento, por lo no se recomienda realizar la implementación local de archivos DLL de Visual C++ Redistributable.
La implementación incorrecta de las bibliotecas de Visual C++ puede dar lugar a errores en tiempo de ejecución cuando se ejecuta una aplicación que depende de ellas. Cuando el sistema operativo carga la aplicación, usa el orden de búsqueda descrito en LoadLibraryEx
.
La vinculación dinámica es mejor que la estática
Se recomienda evitar la vinculación estática cuando se redistribuyen bibliotecas de Visual C++. Aunque la vinculación estática casi nunca mejora significativamente el rendimiento de una aplicación, casi siempre hace que el mantenimiento sea más costoso. Por ejemplo, considere una aplicación vinculada estáticamente con una biblioteca que se ha actualizado con mejoras de seguridad. La aplicación no se puede beneficiar a menos que se vuelva a compilar y a implementar. En su lugar, se recomienda vincular dinámicamente las aplicaciones a las bibliotecas de las que dependen. Así, las bibliotecas se pueden actualizar dondequiera que se implementen.
Consulte también
Implementar aplicaciones de escritorio nativas
Seguridad e implementación ClickOnce
Ejemplos de implementación