Pregunta

Cuando se trata de eliminar nuestra aplicación en Agregar / quitar programas, el siguiente error aparece, y la aplicación deja de desinstalación:

  

Error

     

'mFileBagIDE.dll' no es un nombre de archivo corto válido.

Lo curioso es que sólo se obtiene este error si el DVD de instalación original no está en la unidad. Si el DVD está en la unidad, la desinstalación funciona perfectamente.

Aquí está el verdadero problema: no coger este error hasta después de nuestra aplicación ya se ha desplegado ampliamente, y las situaciones de nuestros clientes son tales que es probable que muchos de ellos ya no tienen su DVD original. Esto significa que el instalador de la próxima versión (haciendo un instalador de ventanas actualización mayor) se producirá un error, ya que no es capaz de quitar primero la versión anterior.

Por lo tanto, mi pregunta es doble:

  • ¿Qué hemos hecho para crear este problema por lo que puede evitar que en futuras versiones?
  • ¿Hay una manera de decir a nuestros próximos instalador de las ventanas de ignorar este error y seguir adelante y eliminar la versión anterior?

Nuestro instalador actual (la que está causando problemas) se generó utilizando InstallAware. es probable que nos estamos moviendo a WiX. Pero las soluciones en cualquier plataforma (InstallAware, WiX, tablas MSI primas) son apreciados!

ACTUALIZACIÓN: Tengo el siguiente fila, tanto en las tablas InstallExecuteSequence y InstallUISequence en mi MSI, que puede muy bien ser relevantes, pero no tengo ni idea de lo que la propiedad SRCDIREX es, o cuando se siendo conjunto.

| Action        | Condition    |
|---------------|--------------|
| ResolveSource | NOT SRCDIREX |
¿Fue útil?

Solución

Probablemente una de las acciones (ya sea estándar o personalizados) que hace referencia el MSI original no fue acondicionado para funcionar con solamente la instalación (por ejemplo, ResolveSource debe estar condicionada como "No instalado"). Usted puede ser capaz de solucionar este con un parche (un archivo MSP) que cambia la condición de la acción correspondiente.

Otros consejos

Yo empezaría por determinar qué acción está causando el error. Así es como yo lo haría:

  • Instalar su aplicación desde el DVD
  • copiar el archivo MSI en alguna carpeta local, digamos "c: \ temp"
  • Eliminar el DVD
  • inicio a la desinstalación de esta manera: "msiexec /x yourapp.msi /L*v c:\temp\uninst.log"

Cuando aparece el error, la desinstalación se detuvo de manera efectiva. A continuación, puede comprobar el final del registro para ver exactamente dónde se encuentra en la secuencia. Eso debería ayudar a depurar.

Si la respuesta es muy ResolveSource, parches regular puede no ser una opción. Heath Stewart menciona esto en su blog - http://blogs.msdn.com/ brezales / archivo / 2007/10/25 / resolvesource-requiere-source.aspx

"En general, no programe ResolveSource. Si esto se ejecuta al instalar un parche, por ejemplo, el usuario tendrá que insertar el soporte original sea que de otro modo debería o no."

Si esa es la posición en la que se encuentre, usted podría crear una transformación que las actualizaciones de la condición de su acción ResolveSource y aplicar eso a la copia en caché del archivo MSI manualmente. Es un poco de dolor, pero estoy bastante seguro de que iba a funcionar.

Tiene intentado copiar dichos archivos en% windir% / system32 carpeta?

EDIT: Haga una configuración para copiar toda la configuración paquete MSI en el disco, e instalarlo desde la disquetera. Retire todos los archivos uneeded a desinstalador. Adobe, HP y muchas otras compañias que están haciendo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top