Implementar aplicación ClickOnce utilizando HttpWebRequest
-
22-08-2019 - |
Pregunta
Estoy tratando de lanzar mi aplicación ClickOnce mediante código C # con HttpWebRequest clase. La aplicación se puede implementar bien usar el IE. Pero cuando se hace el despliegue con mi código, parece que sólo el archivo .Application se descarga al cliente.
Mi código es la siguiente.
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();
¿Hay algo que estoy haciendo mal con mi código?
Gracias! - Bruce
Solución
Creo que hay algo especial que IE hace cuando ve un archivo .Application. Es por eso que se despliega ClickOnce no funcionaron desde Firefox hasta .NET 3.5 SP1 agrega un controlador para ello. Así que lo que estás viendo sería el comportamiento correcto - su aplicación es puramente tirando abajo el archivo como un flujo de bytes -. No sabe qué hacer con ella
Si usted quiere poner en marcha la aplicación mediante programación, me gustaría sugerir este lugar:
System.Diagnostics.Process.Start("http://localhost/test/test.application");
Actualizar
Hay un poco más de información acerca de todo esto ClickOnce / Firefox aquí . Al parecer, un manejador de tipo MIME está instalado para IE que reconoce el tipo de aplicación / -ms-aplicación y ejecuta el archivo con el programa de instalación de ClickOnce. Puede ser vale la pena mirar algunos de los viejos complementos de Firefox que permitió a esta antes de SP1 .NET 3.5 y ver lo que hicieron para iniciar el archivo .Application programación.