【问题标题】:Deploy ClickOnce application using HttpWebRequest使用 HttpWebRequest 部署 ClickOnce 应用程序
【发布时间】:2008-12-19 03:31:07
【问题描述】:

我正在尝试使用带有 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();

我的代码有什么问题吗?

谢谢! - 布鲁斯

【问题讨论】:

    标签: http clickonce webrequest


    【解决方案1】:

    我相信 IE 在看到 .application 文件时会做一些特别的事情。这就是为什么 ClickOnce 部署在 .NET 3.5 SP1 为其添加处理程序之前无法从 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 文件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多