2008-12-19 3 views
1

Я пытаюсь запустить приложение ClickOnce с помощью кода C# с классом HttpWebRequest. Приложение может быть развернуто с использованием IE. Но при развертывании с моим кодом кажется, что только файл .application загружается клиенту.Развернуть приложение ClickOnce, используя HttpWebRequest

Мой код такой, как показано ниже.

 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(); 

Есть ли что-то, что я делаю неправильно с моим кодом?

Спасибо! - Bruce

ответ

2

Я считаю, что есть что-то особенное, что IE делает, когда видит файл .application. Вот почему развертывания ClickOnce не работали с FireFox, пока .NET 3.5 SP1 не добавил обработчик для него. Итак, что вы видите, будет правильным поведением - ваше приложение просто вытаскивает файл как поток байтов - он не знает, что с ним делать.

Если вы хотите программно запустить приложение, я бы предложил вместо этого:

System.Diagnostics.Process.Start("http://localhost/test/test.application"); 

Update

Там немного больше информации о целом ClickOnce/FireFox вещи here. По-видимому, обработчик MIME-типа установлен для IE, который распознает тип приложения/-ms-application и запускает файл с установщиком ClickOnce. Возможно, стоит проверить некоторые из старых дополнений FireFox, которые включили это до .NET 3.5 SP1, и посмотреть, что они сделали, чтобы программно запустить файл .application.

Смежные вопросы