Scarica impostazioni personalizzate dall’URL con i parametri della stringa di query

Ho creato un’applicazione di servizio Windows che voglio creare un file di installazione. Quando l’utente richiede l’applicazione tramite l’url del nostro sito Web con i parametri di ricerca, (ad esempio: http://test.com/setup.exe?id=1212 ) ho bisogno di modificare il valore della chiave app.config corrente con quel valore del parametro di query.

Ho anche bisogno di aggiornare questa applicazione automaticamente quando la nuova versione è pronta. Quindi ClickOnce o scoiattolo per Windows potrebbe essere un’opzione ma non trovo il modo di realizzare l’attività sopra descritta.

Le seguenti domande sono leggermente simili ma non risolvono questo problema: * Come possiamo recuperare le informazioni sulla stringa di query in un’applicazione ClickOnce? * ClickOnce: come faccio a passare un valore querystring alla mia app * tramite l’installer *?

Come posso raggiungere questo objective?

1. Innanzitutto, abilitare i parametri della stringa di query da passare all’applicazione.

inserisci la descrizione dell'immagine qui

2. Accedere alla stringa di query in questo modo

private NameValueCollection GetQueryString() { if (ApplicationDeployment.IsNetworkDeployed) { try { string rawQueryString = String.Empty; rawQueryString = ApplicationDeployment.CurrentDeployment.ActivationUri.Query; NameValueCollection queryString; try { queryString = HttpUtility.ParseQueryString(ApplicationDeployment.CurrentDeployment.ActivationUri.Query); } catch (Exception ex) { throw new Exception("Unauthorized access!"); } return queryString; } catch (Exception ex) { if (ApplicationDeployment.CurrentDeployment == null) { throw new Exception("Deployment error"); } else if (ApplicationDeployment.CurrentDeployment.ActivationUri == null) { throw new Exception("Unable to read data"); } else { throw new Exception("Error with deployment: " + ex.Message); } } } else { throw new Exception("This application may not be accessed directly"); } } 

3. Aggiorna l’app.config

App.Config cambia valore