2012-06-05 20 views
28

Mientras se experimenta con el intento de publicar una versión de Foo Foo y Beta de mi solicitud a través de ClickOnce logré darle una paliza a la existente y que funcionaba con anterioridad fina Foo 1.0.0 instalar (reemplazándolo con Foo Beta 1.0.5, que no funciona) debido al uso del mismo GUID, nombre del ensamblado, nombre del producto o algo así.¿Cómo desinstalo completamente una aplicación ClickOnce de mi computadora?

Bien, error honesto. En un intento de revertir esto, desinstalé Foo Beta usando los programas para agregar/quitar de Windows 7.

Mi equipo se encuentra ahora en un estado en el que ninguna instancia de Foo aparece en Windows 7 Agregar/Quitar programas. Sin embargo, Foo Beta todavía se muestra como instalado. Además, no puedo volver a instalar Foo 1.0.0, porque cree que una versión más reciente del programa (Foo Beta 1.0.5) ya existe en mi computadora, en su lugar aparece `No se puede instalar porque una versión más reciente de este producto ya está instalada 'mensaje.

¿Cómo puedo hacer que mi equipo a un estado donde ni Foo Foo ni Beta nunca se han instalado en él, de modo que pueda entonces ir y volver a instalar Foo?

Hasta ahora he leído preguntas desbordamiento de pila Uninstall ClickOnce clients y How can I remove all traces of a ClickOnce application from a customer's computer? y probado:

  1. Eliminación de todas las foo directorios .exe pertinentes en el marco% USERPROFILE%/
  2. Correr mage.exe -cc
  3. Editando HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ CurrentVersion \ Desinstalar y eliminando la entrada de mi Fo o programa.

Cuando ejecuto el instalador, sigo recibiendo el error. ¿De dónde está encontrando rastros de mi programa? Y para referencia futura, ¿dónde está esto documentado?

Respuesta

36

Usted puede intentar usar este comando para borrar la caché de ClickOnce:

rundll32 dfshim CleanOnlineAppCache 
+4

¿No es equivalente a "mage.exe -cc"? –

+0

Excelente. Funcionó muy bien para mí – Kamrul

+0

En mi win7 box mage.exe no aparece en la ruta estándar, pero esto funcionó para mí. – Jeff

19

1) Ejecutar rundll32 %SystemRoot%\system32\dfshim.dll CleanOnlineAppCache

2) Es posible que tenga que eliminar manualmente las carpetas de implementación de ClickOnce,

  • En Windows Vista o superior, este será el directorio% LocalAppData% \ Apps \ 2.0.
  • En Windows XP, este será el directorio% USERPROFILE% \ Local Settings \ Apps \ 2.0.

3) También podría tener que cerrar la sesión y volver iniciar sesión

+0

BTW - Tuve que hacer esto y luego, una vez que se eliminaron los archivos, hice el rundll32 dfshim CleanOnlineAppCache indicado anteriormente. (En ese orden) Solo entonces funcionó para mí. +1 a los dos! – Jeff

+0

+1 No pude eliminar toda la carpeta 2.0 porque tengo varias otras aplicaciones ClickOnce instaladas, pero la eliminación de las carpetas relativas a mi aplicación allí y también en la carpeta ... 2.0 \ manifestts funcionó. – squillman

+0

ClickOnce también almacena cierta información en el registro (ver el comentario de Uriel Katz a la respuesta de Oleksandr Matviienko) por lo que la eliminación del directorio Apps \ 2.0 no es una desinstalación completa de la aplicación. El primer método, 'rundll32 dfshim CleanOnlineAppCache', funciona bien y borra el registro también. –

0

Eliminación de todos los directorios foo.exe relevantes en% USERPROFILE%/

También debe mirar dentro de la carpeta manifiesta

+1

Si va a hacerlo de forma manual lo que necesita: 1. Quitar desinstalación clave 2. Mira aquí abajo y quitar todo lo relacionado con su aplicación (y subcomponentes!): HKEY_CLASSES_ROOT \ Software \ Microsoft \ Windows \ CurrentVersion \ Implementación \ SideBySide \ 2.0 HKEY_CURRENT_USER \ SOFTWARE \ Classes \ Software \ Microsoft \ Windows \ CurrentVersion \ Deployment \ SideBySide \ 2.0 3. En% LocalAppData% \ Apps \ 2.0, busque en Data y en la carpeta de nombres ofuscados todas las cosas que son relevantes para su aplicación, también se manifiesta Esto lo quita lo suficiente como para que una instalación no falle, por lo que probablemente sea suficiente. –

Cuestiones relacionadas