1

HttpWebRequest クラスで C# コードを使用して ClickOnce アプリケーションを起動しようとしています。アプリケーションは、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();

私のコードで間違っていることはありますか?

ありがとう!- ブルース

4

1 に答える 1

2

私は、IE が .application ファイルを見たときに行う特別なことがあると信じています。そのため、.NET 3.5 SP1 でそのハンドラーが追加されるまで、FireFox から ClickOnce デプロイが機能しませんでした。したがって、あなたが見ているのは正しい動作です.あなたのアプリは純粋にバイトストリームとしてファイルをプルダウンしています.それをどうするかはわかりません.

アプリケーションをプログラムで起動したい場合は、代わりにこれをお勧めします。

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

アップデート

ClickOnce/FireFox の全体について、もう少し詳しい情報がここにあります。application/-ms-application タイプを認識し、ClickOnce インストーラーでファイルを実行する IE 用の MIME タイプ ハンドラーがインストールされているようです。.NET 3.5 SP1 より前にこれを有効にした古い FireFox アドオンのいくつかを調べて、プログラムで .application ファイルを起動するためにそれらが何をしたかを確認する価値があるかもしれません。

于 2008-12-19T03:48:39.803 に答える