Déployer l'application ClickOnce à l'aide HttpWebRequest
-
22-08-2019 - |
Question
Je suis en train de lancer mon application ClickOnce en utilisant le code C # avec classe HttpWebRequest. L'application peut être déployée en utilisant IE bien. Mais lorsque vous faites le déploiement avec mon code, il semble que le fichier est téléchargé .Application au client.
Mon code est comme ci-dessous.
HttpWebRequest getRequest = (HttpWebRequest)WebRequest.Create("http://localhost/test/test.application");
getRequest.Method = "GET";
getRequest.Timeout = 500000; //default is 100 seconds
HttpWebResponse getResponse = (HttpWebResponse)getRequest.GetResponse();
string loginUrl = getResponse.ResponseUri.AbsoluteUri;
StreamReader responseReader = new StreamReader(getResponse.GetResponseStream());
string responseData = responseReader.ReadToEnd();
responseReader.Close();
Est-ce que je fais mal avec mon code?
Merci! - Bruce
La solution
Je crois qu'il ya quelque chose de spécial que IE fait quand il voit un fichier .Application. Voilà pourquoi Déploie ClickOnce ne fonctionnait pas de FireFox jusqu'à .NET 3.5 SP1 ajouté un gestionnaire pour elle. Donc, ce que vous voyez serait le comportement correct - votre application est purement tirant vers le bas le fichier comme un flux d'octets -. Il ne sait pas quoi faire avec elle
Si vous voulez lancer l'application programatically, je vous suggère ceci:
System.Diagnostics.Process.Start("http://localhost/test/test.application");
Mise à jour
Il y a un peu plus d'informations sur toute chose ClickOnce / FireFox . Apparemment, un gestionnaire de type MIME est installé pour IE qui reconnaît le type application / -ms-application et exécute le fichier avec le programme d'installation ClickOnce. Il peut être utile de vérifier certains des anciens FireFox add-ons qui a permis à cette avant .NET 3.5 SP1 et de voir ce qu'ils ont fait pour lancer le fichier .Application programatically.