Bereitstellen von Clickonce-Anwendung unter Verwendung von HttpWebRequest
-
22-08-2019 - |
Frage
Ich versuche, meine Clickonce-Anwendung mit C # -Code mit HttpWebRequest-Klasse zu starten. Die Anwendung kann fein mit IE entfaltet werden. Aber wenn der Einsatz mit meinem Code zu tun, es scheint nur die .application Datei zum Client heruntergeladen wird.
Mein Code ist als unten.
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();
Gibt es etwas, was ich falsch mache mit meinem Code?
Danke! - Bruce
Lösung
Ich glaube, dass es etwas Besonderes, dass IE tut, wenn es eine .application Datei sieht. Deshalb nicht von Clickonce entfaltet FireFox bis .NET 3.5 SP1 funktioniert hat einen Handler für hinzugefügt. Also, was Sie sehen, wäre das richtige Verhalten - Ihre App rein zieht Sie die Datei als einen Strom von Bytes -. Es nicht weiß, was mit ihm zu tun
Wenn Sie wollen programmatisch die Anwendung starten, würde ich dies vorschlagen statt:
System.Diagnostics.Process.Start("http://localhost/test/test.application");
Aktualisieren
Es ist ein bisschen mehr Informationen über die gesamte Clickonce / FireFox Sache hier . Anscheinend ist ein MIME-Typ-Handler für IE installiert, die die Anwendung / -ms-Anwendungstyp erkennt und führt die Datei mit dem Clickonce Installer. Es kann einige Kontrollen aus dem alten Firefox-Add-ons wert sein, dass diese vor dem .NET 3.5 SP1 aktiviert und sieht, was sie taten programmatisch die .application Datei zu starten.