Разверните приложение ClickOnce с помощью HttpWebRequest - PullRequest
1 голос
/ 19 декабря 2008

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

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

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

Что-то не так с моим кодом?

Спасибо! - Брюс

1 Ответ

2 голосов
/ 19 декабря 2008

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

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

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

Обновление

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...