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 文件时会做一些特别的事情。这就是为什么 ClickOnce 部署在 .NET 3.5 SP1 为其添加处理程序之前无法从 FireFox 工作的原因。所以你看到的是正确的行为——你的应用程序纯粹是把文件作为字节流拉下来——它不知道如何处理它。

如果您想以编程方式启动应用程序,我建议您这样做:

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

更新

这里有关于整个 ClickOnce/FireFox 的更多信息。显然,为 IE 安装了一个 MIME 类型的处理程序,它可以识别 application/-ms-application 类型并使用 ClickOnce 安装程序运行文件。可能值得查看一些在 .NET 3.5 SP1 之前启用此功能的旧 FireFox 附加组件,看看他们如何以编程方式启动 .application 文件。

于 2008-12-19T03:48:39.803 回答