Installare un’applicazione ClickOnce senza interagire con l’utente

Affezionati lettori bentornati. Oggi vorrei portare alla vostra attenzione una domanda che mi è stata posta da un cliente, che ringrazio poiché sino a oggi non mi era mai capitato di affrontare la questione. La domanda è la seguente:

E’ possibile installare un’applicazione distribuita tramite la tecnologia ClickOnce in silent way, in altre parole in modo trasparente per l’utente?

La domanda è assolutamente interessante, dato che se si vuole inserire l’installazione del nostro software in un sistema di distribuzione automatizzato su un gran numero di macchine client, è assolutamente indispensabile predisporre l’installazione del nostro software in silent way.

Prima di entrare nel merito del quesito, consentitemi di riportare un link nel quale viene introdotta la tecnologia ClickOnce. Chiunque volesse avere una panoramica su tale tematica potrà leggere le informazioni indicate sul link.

Per tornare alla domanda iniziale, la risposta è affermativa come avrete sicuramente avuto modo di capire, altrimenti non leggereste questo post Wink.Esiste infatti una classe che nasce appositamente per tale scopo, la classe: InPlaceHostingManager. L’intento è quello di creare una nuova applicazione, la quale mediante la classe appena indicata si preoccuperà di reperire la vostra applicazione dal path di pubblicazione, scaricandola localmente ed installando nel sistema.

I passi da compiere sono davvero banali e ben illustrati nella nostra documentazione.Vorrei semplicemente portare alla vostra attenzione alcune informazioni:

  • There is currently a product limitation that prevents InPlaceHostingManager from working correctly when you debug your code using Visual Studio. If you debug your application in Visual Studio by using the F5 key, the sample will throw mysterious exceptions when you call DownloadApplicationAsync. To debug using Visual Studio, start the application without debugging, and then attach the debugger. Alternatively, you can use another debugger, such as WinDbg.
  •  La classe in oggetto, pur essendo disponibile anche per la .NET Framewrok 2.0, va utilizzata solamente se l’applicazione che utilizzerà la classe InPlaceHostingManager è compilata almeno per la .NET Framework 3.0. Filtrando infatti la documentazione per la framewrok 2.0 è possibile leggere:
    “Note: This class is new in the .NET Framework version 2.0.
    This class supports the .NET Framework infrastructure and is not intended to be used directly from your code."
  • Installate il certificato utilizzato per pubblicare l’applicazione ClickOnce tra i trusted publisher della macchina dove andrete ad installare la vostra applicazione. Questo eviterà la visualizzazione dei messaggi di warning.
  • Utilizzando il codice pubblicato in documentazione, è possibile che la vostra applicazione non funzioni correttamente qualora quest’ultima richieda di elevare i propri permessi. In tale casi occorrerà modificare il codice della documentazione come indicato nel seguito e specificato nella documentazione pubblica.

iphm.AssertApplicationRequirements(true);

 

Alla prossima.
Carmelo Pulvirenti.