Share via


Implementación del instalador de Visual Studio

La implementación de Windows Installer permite crear paquetes del instalador para distribuirlos entre los usuarios; el usuario ejecuta el archivo y los pasos de instalación mediante un asistente para instalar la aplicación. Esto se hace agregando un proyecto de instalación a la solución. Una vez compilado, el proyecto crea un archivo de instalación que se distribuye entre los usuarios; el usuario ejecuta el archivo y los pasos de instalación mediante un asistente para instalar la aplicación.

Microsoft Windows Installer es un servicio de instalación y configuración controlado por datos que se distribuye como parte del sistema operativo Windows. Windows Installer mantiene una base de datos de información sobre cada aplicación que se instala, incluidos archivos, claves del Registro y componentes. Cuando se desinstala una aplicación, se comprueba la base de datos para asegurarse de que ninguna otra aplicación precisa un archivo, clave de Registro o componente antes de quitarlo, lo que evita que la eliminación de una aplicación afecte al buen funcionamiento de otra.

Nota

Las ediciones Express no incluyen la tecnología de Windows Installer. Para obtener más información sobre la tecnología de implementación que se usa en las ediciones Express, vea Seguridad e implementación ClickOnce.

Si utiliza las herramientas de implementación de Visual Studio con la funcionalidad proporcionada por Windows Installer, podrá implementar y mantener las aplicaciones.

Crear un paquete de instalador

Debe utilizar un paquete de instalador para implementar la aplicación y sus requisitos previos. Normalmente, las aplicaciones dependen de .NET Framework, SQL Server Express o incluso de un archivo EXE o DLL personalizado. Sin embargo, no se sabe con seguridad si los equipos de usuario final tienen la versión concreta de .NET Framework u otras dependencias en las que se basa la aplicación. Por esta razón, no se recomienda copiar la aplicación en el equipo de usuario final.

Ubicación de instalación

Los usuarios finales pueden instalar la aplicación desde la Web, un CD, un recurso compartido de archivos en la red u otras alternativas. La ubicación de instalación afecta a la plantilla de proyecto que se puede utilizar. Por ejemplo, si desea que los usuarios finales realicen la instalación desde la Web, podrá utilizar la plantilla Proyecto de programa de instalación web. Para instalar desde un CD o la red, utilice la plantilla Proyecto de instalación. Para obtener más información sobre las plantillas de proyecto de implementación, vea Proyectos de instalación e implementación.

Archivos y carpetas

Puede utilizar el Editor del sistema de archivos para controlar dónde y cómo se instalan los archivos de implementación. La organización del sistema de archivos puede ser distinta de un equipo a otro y los nombres de carpeta pueden diferir también; por tanto, para garantizar que los archivos se instalan en donde se desea, el Editor del sistema de archivos usa el concepto de carpetas abstractas o virtuales. Para obtener más información, vea Administración de la instalación de archivos en la implementación.

Las carpetas virtuales representan las carpetas del sistema de Windows. Por ejemplo, la carpeta Escritorio es el equivalente a la carpeta Escritorio del sistema. Windows realiza un seguimiento de la ubicación de las carpetas del sistema, de modo que no importa dónde se encuentre o cuál sea su nombre: los archivos ubicados en la carpeta Escritorio acabarán siempre en la carpeta del escritorio del sistema. Para obtener más información, vea Carpetas especiales y carpetas personalizadas.

Asimismo, el usuario puede crear sus propias carpetas y situarlas por debajo de cualquier carpeta del sistema. Por ejemplo, si se crea una carpeta Datos de la aplicación bajo la Carpeta de la aplicación no importará dónde se encuentre esta Carpeta de la aplicación en un equipo de destino, ya que los archivos situados en la carpeta Datos de la aplicación se instalarán siempre en la misma ubicación relativa. Para obtener más información, vea Cómo: Agregar y quitar carpetas en el Editor del sistema de archivos.

Las carpetas mostradas en el Editor del sistema de archivos pueden contener archivos, resultados de proyectos y ensamblados. Los resultados de proyectos representan a los elementos incluidos en otro proyecto dentro de la solución y pueden contener los principales archivos de salida compilados (por ejemplo, un archivo ejecutable), recursos localizados, información simbólica de depuración, archivos de contenido (por ejemplo, páginas HTML) y los archivos origen del proyecto. Cada uno de estos resultados se denomina grupo de resultados del proyecto, y contiene los resultados principales (también conocido como el resultado clave) más cualquier resultado y dependencia adicional. Para obtener más información, vea Cómo: Agregar y quitar resultados de proyectos en el Editor del sistema de archivos y Cómo: Agregar elementos a un proyecto de implementación.

Por otra parte, pueden incluirse condiciones en cualquier archivo o carpeta mediante la propiedad Condition. Esto permite personalizar la instalación de archivos en función de las condiciones que existan en el equipo de destino durante la instalación. Por ejemplo, puede elegir instalar distintos archivos dependiendo de la versión del sistema operativo instalada en el equipo de destino. Para obtener más información, vea Condition (Propiedad).

El Editor del sistema de archivos también admite la creación de accesos directos, lo que permite ubicar archivos en una carpeta y apuntar a ellos desde un acceso directo situado en el escritorio o en otra carpeta. Para obtener más información, vea Cómo: Agregar y quitar accesos directos en el Editor del sistema de archivos.

Asociaciones de archivo

Al implementar una aplicación, en muchas ocasiones, se desea asociar un tipo de archivo a esa aplicación. Por ejemplo, si la aplicación crea y utiliza archivos con la extensión .miarchivo, se la puede asociar con el tipo de archivo .miarchivo de forma que cuando un usuario haga doble clic sobre un archivo de este tipo, se abra en la aplicación.

Las herramientas de implementación de Visual Studio incluyen un Editor de tipos de archivos, que permite especificar tipos de documentos y asociarlos a extensiones de archivo. Además, se pueden especificar los verbos o acciones para cada tipo de documento y determinar los tipos MIME de los tipos de documentos para su uso en exploradores. Para obtener más información, vea Administración de tipos de archivos en la implementación.

Durante la instalación, la configuración especificada en el Editor de tipos de archivos se actualiza en el equipo de destino.

Registro

A menudo, una parte esencial de la implementación de una aplicación consiste en obtener acceso al Registro, configurar los valores del Registro o crear nuevas claves del Registro. Las herramientas de implementación de Visual Studio proporcionan esta funcionalidad.

El Editor del Registro de Visual Studio es similar al Editor del Registro de Windows: ambas herramientas proporcionan una representación jerárquica del Registro en un equipo de destino. En ella, se representan las raíces estándar del Registro. Se pueden modificar los valores de las claves existentes, agregar valores para claves nuevas y especificar claves predeterminadas. Para obtener más información, vea Administración de configuraciones del Registro en la implementación.

Durante la instalación, las claves y los valores especificados en el Editor del Registro se escriben en el Registro del equipo de destino.

Además, se pueden incluir condiciones en cualquier clave o valor del Registro mediante la propiedad Condition. lo que permite personalizar el Registro durante la instalación basándose en las condiciones que existan en el equipo de destino. Por ejemplo, se puede introducir un valor del Registro distinto dependiendo de la versión del sistema operativo instalada en el equipo de destino.

Firmas Authenticode

Puede que desee firmar una aplicación o un componente de modo que los usuarios puedan comprobar quién es el responsable de su publicación y si es confiable en materia de seguridad. Se recomienda firmar los archivos CAB e instaladores que se descargan a través de un explorador web.

Puede usar las herramientas de implementación de Visual Studio para firmar instaladores, módulos de combinación o archivos Cab con la tecnología Authenticode de Microsoft. Primero, debe obtener un certificado digital para firmar la aplicación o los componentes.

Para usar las firmas Authenticode, es preciso habilitar los manifiestos firmados de ClickOnce en el proyecto de implementación. Para obtener más información, vea Página Firma, Diseñador de proyectos.

Caché global de ensamblados

La memoria caché global de ensamblados es una memoria caché de código proporcionada por .NET Framework que se utiliza para almacenar los ensamblados que varias aplicaciones deben compartir. Para que se pueda instalar en la memoria caché global de ensamblados, es preciso asignar al ensamblado un nombre seguro, el cual proporciona a una aplicación o un componente una identidad única que otro software puede utilizar para identificar y hacer referencia explícitamente a la misma. Para obtener más información, vea Cómo: Firmar un ensamblado (Visual Studio).

Para instalar un ensamblado en esta memoria caché, agregue el ensamblado o el grupo de resultados del proyecto del ensamblado a la carpeta Caché global de ensamblados del Editor del sistema de archivos. Para abrir este editor, en el menú Ver, elija Editor y haga clic en Editor del sistema de archivos.

La carpeta Caché global de ensamblados se encuentra, a diferencia de las otras carpetas, en el Editor del sistema de archivos. Esta carpeta no tiene propiedades que se puedan establecer, y no es posible crear un acceso directo a la carpeta ni a sus ensamblados.

Seleccionar los requisitos previos

Para implementar correctamente una aplicación, también debe implementar todos los componentes a los que hace referencia la aplicación. Por ejemplo, la mayoría de las aplicaciones creadas con Visual Studio dependen de .NET Framework. En el equipo de destino debe estar presente la versión correspondiente de Common Language Runtime antes de instalar la aplicación. Las herramientas de implementación de Visual Studio permiten instalar .NET Framework y otros componentes como parte de la instalación. El proceso de instalación de los componentes necesarios también se denomina arranque.

Para obtener más información, vea Cómo: Instalar los requisitos previos en la implementación de Windows Installer.

Instalar con privilegios administrativos

La instalación administrativa es una característica de Microsoft Windows Installer que permite instalar la imagen de origen de una aplicación en un recurso de red compartido. Gracias a ella, usuarios de un mismo grupo de trabajo con acceso al recurso de red compartido pueden instalar la aplicación a partir de la imagen de origen.

El Editor de la interfaz de usuario permite especificar un conjunto variado de cuadros de diálogo de instalación que se muestran cada vez que un administrador instala la aplicación en un recurso compartido de red a través de la línea de comandos con la opción /a (msiexec /anombreDeInstalador). Para obtener más información, vea Administración de la interfaz de usuario en la implementación.

Nota

Con la instalación administrativa, los archivos de aplicaciones de arranque (aquéllos que, si es necesario, instalan Windows Installer) no se copian en el servidor, ni siquiera cuando la propiedad Bootstrapper se encuentra configurada como Arranque para Windows Installer. Si estos archivos resultan imprescindibles para la instalación, deberán copiarse manualmente los archivos Instmsia.msi, Instmsiw.msi, Setup.exe y Setup.ini en el servidor. Los archivos se ubicarán en el mismo directorio que el archivo .msi de la aplicación.

Para obtener más información, consulte la documentación del Kit de desarrollo de software de Windows Installer en Instalación administrativa (Windows Installer).

Windows y elevación

La tecnología de Windows Installer admite la instalación de software en Windows Vista y Windows 7. El usuario final que instala aplicaciones solo debe recibir solicitudes para cada instalación de componente que requiera elevación, aunque el equipo del usuario se ejecute bajo Control de cuentas de usuario (UAC).

Elevación de aplicaciones

Normalmente, Setup.exe (también conocido como el arranque) no se ejecuta con permisos elevados; se ejecuta en el nivel de permisos del usuario actual. Por tanto, la instalación no solicita la elevación cuando se inicia la instalación de la aplicación final. Sin embargo, conviene observar que un archivo .msi normalmente pregunta al usuario, mientras que el archivo Setup.exe no lo hace.

En el manifiesto incrustado de UAC del arranque, el nodo requestedExecutionLevel especifica que la instalación se ejecuta como usuario actual (asInvoker):

<requestedExecutionLevel level="asInvoker" />

Sin embargo, puede elevar la instalación de la aplicación si debe hacerlo. Por ejemplo, la modificación de valores de configuración de Internet Information Services (IIS) en un proyecto de programa de instalación web requiere privilegios administrativos, al igual que la instalación de ensamblados en la caché global de ensamblados. La solicitud de elevación se produce después de la instalación de los requisitos previos pero antes de la instalación de la aplicación.

Para elevar los permisos para una instalación, abra el archivo de proyecto (.vdproj). En la sección MsiBootstrapper del archivo de proyecto, establezca la propiedad RequiresElevation en True. Esta propiedad no está disponible en el entorno de desarrollo integrado (IDE) de Visual Studio. Por consiguiente, debe usar el archivo de proyecto. Para obtener más información, vea RequiresElevation (Propiedad).

Elevación asistida por administrador

Windows Installer admite la elevación asistida por administrador en Windows Vista y Windows 7. En este escenario, se piden al usuario credenciales de administrador, y el administrador escribe la contraseña del usuario. Para que se admita este escenario, el arranque establece la propiedad AdminUser en True cuando en el equipo se está ejecutando Windows Vista o una versión de Windows posterior.

Nota

Si está ejecutando Windows Vista en un equipo que no utiliza UAC y no es administrador, AdminUser seguirá establecido en True. Por consiguiente, se deben escribir los instaladores .exe (como SQLExpress32.exe) para detectar los permisos adecuados y generar un código de salida concreto en caso de no disponer de permisos suficientes. Debe crear Setup.exe para que se detecte este código de salida y se muestre un mensaje indicando que se necesita un administrador.

Elevación de requisitos previos

Windows Vista y Windows 7 elevarán los requisitos previos para la instalación de componentes cuando sea preciso. El arranque no realiza ninguna elevación; cuando Windows Vista o Windows 7 se ejecutan bajo UAC, emite un mensaje para cada componente necesario que debe elevarse, a menos que ya esté instalado. Si se produce un error al elevar un paquete, también se produce un error en el arranque y se envía el mensaje correspondiente.

Elevación de acciones personalizadas

Las acciones personalizadas que se crean en el Editor de acciones personalizadas se ejecutan con permisos elevados. Las acciones personalizadas no deben tener acceso a los datos específicos del usuario, como el Registro o el sistema de archivos, porque la acción personalizada no se ejecutará en la cuenta del usuario que invoca.

De forma predeterminada, las acciones personalizadas se ejecutan con permisos elevados porque el valor predeterminado de la propiedad NoImpersonate es True en el Editor de acciones personalizadas. El cambio de NoImpersonate a False exigiría que la acción personalizada suplantase al usuario que invoca, que podría haber reducido los permisos.

Diferencias entre las versiones de Visual Studio

Conviene observar también que habrá diferencias entre la manera en que se ejecutarán los proyectos de programa de instalación de Visual Studio 2005 y Visual Studio 2008 bajo UAC.

La detección del instalador integrado de Windows Vista o Windows 7 solicita consentimiento cuando se ejecuta bajo UAC. Un arranque (Setup.exe) compilado con Visual Studio 2005 siempre solicita consentimiento, con independencia de lo que se esté instalando. Dado que Setup.exe y todos sus procesos se ejecutan con un token de administrador en Windows Vista y Windows 7, la instalación de la aplicación final se realizará con privilegios elevados. Si un usuario ejecuta Setup.exe con elevación asistida por administrador, la aplicación se instalará bajo el perfil del usuario elevado (no bajo el perfil de administrador).

En Visual Studio 2008 y Visual Studio 2010, el comportamiento de Setup.exe no solicita la elevación cuando se inicia. Para evitar la solicitud de elevación, el manifiesto incrustado del arranque especifica que Setup.exe se ejecute con un nivel de ejecución solicitado de asInvoker. Esto proporciona la ventaja de que la instalación de la aplicación final no se ejecuta con permisos elevados, aunque se sigue permitiendo la instalación de los componentes necesarios con permisos elevadas cuando sea preciso. El arranque llama a ShellExecute para iniciar los requisitos previos. Windows Vista o Windows 7 recibe esta llamada, realiza la detección de la instalación y emite un mensaje de usuario antes de la instalación.

La desventaja de este cambio es que se emite un mensaje para cada componente necesario que debe instalarse, además de la propia aplicación. Sin embargo, si todos los requisitos previos ya están en el equipo, puede que la instalación no emita mensajes. Además, no debe haber comprobaciones externas que necesiten elevación. Las comprobaciones externas funcionarán, pero el usuario recibirá varias solicitudes de elevación por cada comprobación externa, además de emitirse mensajes para el instalador.

Vea también

Tareas

Solucionar problemas de proyectos de instalación e implementación

Referencia

Errores de implementación y soporte

Conceptos

Proyectos de instalación e implementación

Otros recursos

Implementar aplicaciones y componentes

Editores de implementación

Tareas y tutoriales de implementación

Cuadros de diálogo de implementación

Ejemplos y tutoriales de implementación