2011-07-26 17 views
6

Tengo un proyecto de instalación de Visual Studio que utiliza el archivo msiexec.exe para crear un elementodesinstalación como se indica en >> THIS << artículo sobre SO.Visual Studio 2010: Windows Installer utilizando msiexec.exe vuelve MSI Error 2727

El instalador no se ejecuta.

Cuando inicio el programa de instalación haciendo doble clic en el archivo setup.exe , el "Por favor, espere mientras el programa pone en marcha" pantalla apenas blips en la pantalla antes de que me encontré con mi error.

Error Code 2727

El texto es (para funciones de búsqueda):

El instalador ha encontrado un error inesperado instalar este paquete. Esto puede indicar un problema con este paquete. El código de error es 2727.

he encontrado un conjunto de MSI Error Codes, y el código de error 2727 se traduce en

The directory entry '[2]' does not exist in the Directory table.

¿Alguien podría ayudarme a solucionar esto? ¿Que debería hacer?

[ACTUALIZACIÓN]

A sugerencia de Cosmin Pirvu, he creado un registro de errores para mi instalador. Después de mirar por encima, parece que mi error de instalación podría ser el resultado de tener un enlace a la No instalado archivo msiexec.exe que yo uso en conjunción con [ProductCode] de mi Proyecto de creación de una desinstalación enlace.

El archivo de registro que se muestra a continuación parece indicar que mi instalación falla cuando el instalador intenta crear un archivo temporal para msiexec.exe, luego tiene otro error cuando intenta mostrar el icono de error.

El archivo >> install.log on Google Sites << es la salida de mi archivo de registro de errores (Sugerencia: haga una búsqueda de Return value 3 para obtener los errores).

[ACTUALIZACIÓN 2]

Tengo un enlace desinstalación en el proyecto de instalación que une de nuevo al archivo por lotes uninstall.bat en mi proyecto principal:

@echo off 
%windir%\system32\msiexec.exe /x %1 

El Arguments a la El enlace de desinstalación es solo [ProductCode], ya que el interruptor /x está codificado en el archivo por lotes.

[Solución]:

El instalador de Visual Studio no fue crear una carpeta que tenía algunos archivos DLL necesarios en ella.

+0

Intente crear un registro de instalación detallado para ver qué desencadena el error. –

+0

Dame algunos consejos sobre cómo hacer eso. No hay nada en el Visor de eventos que no sea el mensaje de error que me envían. Tal vez mi archivo 'app.config' no es correcto. ??? – jp2code

+1

Quizás este artículo ayude: http://setupanddeployment.com/debugging/msi-log/ –

Respuesta

3

El primer paso debería ser crear un installation log para ver qué desencadena el error.

En el registro que ha publicado, parece que su MSI intenta utilizar un directorio que no está en la tabla Directorio. ¿Estás utilizando algún módulo de combinación o acciones personalizadas especiales? De ser así, intente determinar si intentan usar un directorio de su paquete.

Mencionó algo sobre un atajo de desinstalación. ¿Puede darnos más detalles?

+0

Hola Cosmin. He actualizado mi pregunta para brindar más información sobre el acceso directo, pero básicamente solo apunta a un * archivo por lotes * que he incluido en mi solución. – jp2code

+1

El acceso directo está bien. El problema es causado por otra cosa. ¿Puedes publicar el MSI en alguna parte o enviármelo por correo electrónico para que pueda echar un vistazo? –

+0

Sí, pasen por aquí y publiquen un mensaje aquí: http://www.jp2code.net/contact/ – jp2code

3

La pregunta anterior, lo sé, solo quería agregar algo de información que me ayudó con el proyecto de Windows Installer en Visual Studio 2015, en caso de que alguien se encuentre con este tema.

Recibí el mismo mensaje de error, 2727. Mi problema era que estaba incluyendo mi código fuente en una carpeta "src" en el directorio de instalación. Al mirar los archivos de salida de la fuente, me di cuenta de varios archivos como este:

\ obj \ Release \\ TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs

Sí, inclusión de dicha barra extra después Lanzamiento. Tuve que agregar una exclusión (haga clic con el botón derecho en Salida de archivos de origen -> ExcluirFiltro) para excluir la instalación de estos archivos. Agregué "* Temporal *" para excluir solo estos archivos.

Tal vez alguien más pueda explicar por qué se generaron estos archivos temporales, todo lo que sé es que esto solucionó el problema. Espero que esto ayude a alguien más a buscar este tema.

+0

¡Esta solución funcionó para mí! ¡Gracias! –

1

Si elimina un directorio o directorios de la Tabla de directorio, Esto causará un problema con otras tablas que todavía usan esas variables de directorio.

2

Sé que es una pregunta anterior, pero como @Riccaforte estaba teniendo problemas para solucionar esto en Visual Studio 2015. Lo que hice fue eliminar todos mis archivos de origen dentro de mi carpeta de aplicaciones, y no sé por qué , pero funcionó.

+1

Esto fue clave para resolver un problema que tuve durante el día. ¡La cerveza está en mí! – SilentNot

Cuestiones relacionadas