2010-04-29 8 views
6

Cómo desinstalar la aplicación silverlight 4 fuera del navegador mediante programación en lugar de usar el menú contextual (por ejemplo, si deseo reemplazar el menú contextual)?Desinstalar programáticamente la aplicación silverlight fuera del navegador

Editar

He encontrado en "Installing Silverlight applications without the browser involved" cómo desinstalar llamando a la línea de comandos:

"% ProgramFiles% \ Microsoft Silverlight \ sllauncher.exe"/desinstalación/origen: Silverlight .net/content/muestras/aplicaciones/...

Esto se puede utilizar en: -

dynamic cmd = AutomationFactory.CreateObject("WScript.Shell"); 
cmd.Run(run, 1, true); 

¿Hay alguna solución mejor?

+0

He encontrado en http://timheuer.com/blog/archive/2010/03/25/ usando-sllauncher-de-silencio-install-silverlight-Application.aspx cómo desinstalar llamando a la línea de comandos: "% ProgramFiles% \ Microsoft Silverlight \ sllauncher.exe" /desinstalación /origen: http://www.silverlight.net/content/samples/apps/facebookclient/ClientBin/Silverface.xap Esto se puede usar en dynamic cmd = AutomationFactory.CreateObject ("WScript.Shell"); cmd.Run (ejecución, 1, verdadero); ¿Hay alguna solución mejor disponible? –

+0

Utilice la función de edición de preguntas para incluir información adicional en lugar de un comentario. – AnthonyWJones

+3

Me pregunto, ¿cómo hacerlo en Mac? Gosh ... incluso en la quinta versión de SL, algunas cosas que no están en el navegador se ven tan feas. ¿Por qué no puedo llamar directamente la aplicación desde el navegador si ya está instalada? ¿Por qué no puedo desinstalarlo (quiero decir en el código)? Por qué CheckAndDownloadUpdateAsync() no siempre funciona ... – Agzam

Respuesta

1

bastante seguro de que esto no es posible sin recurrir a la interoperabilidad COM como dice Mike, también me pregunta si es una buena idea ya que:

1) Extracción de la opción de desinstalación, sin duda, molestar a muchos usuarios y es una mala práctica. 2) ¿Dice que está buscando implementar un nuevo menú de contexto? A menos que sea una aplicación LOB, desconfío de esto ya que muchos usuarios no estarán acostumbrados a acceder a los menús contextuales en una aplicación web que para mí es HCI deficiente. Si se trata de una aplicación LOB, entonces Agregar/quitar programas sería una solución correcta?

+0

También podría desear tener un botón para instalar y otro para desinstalar (era mi caso). Reemplazar el menú del botón derecho también fue útil para mí, para poner cosas muy avanzadas, pero perder el comando de desinstalación me obligó a olvidarme de esa solución. – jv42

1

La solución que mencionas sigue siendo la única forma en que sé hacerlo. Es un buen toque poner un Application.Current.MainWindow.Close(); después, ya que la aplicación seguirá ejecutándose después de realizar la desinstalación.

Marc

0

Salida mi solución aquí: Unable to Uninstall SIlverlight Out Of Browser Application Programatically He utilizado el código en él en aplicación de consola que estaba a cargo de la aplicación Silverlight que se desinstalando. Silverlight extrajo el EXE como recurso a uno de los directorios y luego lo ejecutó usando algo como lo siguiente:

using (dynamic shell = AutomationFactory.CreateObject("WScript.Shell")) 
{ 
    shell.Run(@"C:\Users\yourusername\AppData\update.exe xapNameToUninstall"); 
} 
Cuestiones relacionadas