2010-04-29 17 views
6

Come disinstallare l'applicazione silverlight 4 fuori dal browser al posto di utilizzare il menu di scelta rapida (ad es. Se si desidera sostituire il menu di scelta rapida)?Disinstallare l'applicazione silverlight fuori dal browser a livello di programmazione

Modifica

ho trovato in "Installing Silverlight applications without the browser involved" come disinstallare chiamando la linea di comando:

"% Programmi% \ Microsoft Silverlight \ sllauncher.exe"/uninstall/origine: silverlight .net/content/samples/apps/...

Questo può essere utilizzato in: -

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

C'è una soluzione migliore?

+0

ho trovato in http://timheuer.com/blog/archive/2010/03/25/ utilizzando-sllauncher-per-silent-install-silverlight-Application.aspx come disinstallare chiamando la linea di comando: "% Programmi% \ Microsoft Silverlight \ sllauncher.exe" /uninstall /origine: http://www.silverlight.net/content/samples/apps/facebookclient/ClientBin/Silverface.xap Questo può essere utilizzato in dinamico cmd = AutomationFactory.CreateObject ("WScript.Shell"); cmd.Run (esecuzione, 1, vero); È disponibile una soluzione migliore? –

+0

Utilizzare la funzione di modifica delle domande per includere informazioni aggiuntive anziché un commento. – AnthonyWJones

+3

Mi sto chiedendo troppo, come farlo su Mac? Accidenti ... anche nella quinta versione di SL, alcune cose fuori dal browser sembrano così dannatamente brutte. Perché non posso chiamare direttamente l'app dal browser se è già installata? Perché non riesco a disinstallarlo (intendo nel codice)? Perché CheckAndDownloadUpdateAsync() non funziona sempre ... – Agzam

risposta

1

Abbastanza certo questo non è possibile senza ricorrere a interoperabilità COM come dice Mike, anche sarei chiedo se è una buona idea, dato che:

1) Rimuovere l'opzione di disinstallazione sarà senza dubbio infastidire molti utenti ed è una cattiva pratica. 2) Hai detto che stai cercando di implementare un nuovo menu di scelta rapida? A meno che non si tratti di un'applicazione LOB, sarei diffidente in quanto molti utenti non saranno utilizzati per accedere ai menu di scelta rapida in un'app Web che per me è HCI scadente. Se si tratta di un'applicazione LOB, aggiungere/rimuovere programmi sarebbe una soluzione OK?

+0

Si potrebbe anche voler avere un pulsante da installare e un altro da disinstallare (era il mio caso). Sostituire il menu del tasto destro è stato utile anche per me, per mettere cose molto avanzate, ma perdere il comando di disinstallazione mi ha costretto a dimenticare quella soluzione. – jv42

1

La soluzione che hai citato è ancora l'unico modo che conosco per farlo. È un bel tocco mettere un Application.Current.MainWindow.Close(); dopo, anche se l'applicazione sarà ancora in esecuzione dopo aver fatto la disinstallazione.

Marc

0

Partenza mia soluzione qui: Unable to Uninstall SIlverlight Out Of Browser Application Programatically Ho usato il codice in console app che è stato gestito dalla applicazione Silverlight che è stato disinstallazione. Silverlight estratto il file EXE come risorsa per una delle directory e poi corse utilizzando qualcosa di simile al seguente:

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