2008-12-19 226 views
1

我試圖用HttpWebRequest類使用C#代碼啓動我的ClickOnce應用程序。使用IE可以很好地部署應用程序。但是當用我的代碼進行部署時,似乎只有.application文件被下載到客戶端。使用HttpWebRequest部署ClickOnce應用程序

我的代碼如下。

 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文件時。這就是爲什麼在.NET 3.5 SP1爲它添加處理程序之前,ClickOnce部署無法從FireFox運行。所以你所看到的將是正確的行爲 - 你的應用程序純粹是以字節流的形式將文件拉下來 - 它不知道該如何處理它。

如果你想以編程方式啓動的應用程序,我反而認爲這樣的:

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

更新

有一點對整個的ClickOnce/FireFox的事情here更多信息。顯然,爲IE安裝了MIME類型的處理程序,它識別application/-ms-application類型並使用ClickOnce安裝程序運行該文件。在.NET 3.5 SP1之前檢查一些啓用此功能的舊FireFox插件可能是值得的,並且看看他們如何以編程方式啓動.application文件。

相關問題