c# - 如何使用从浏览器下载的应用程序启动 ClickOnce 应用程序?

标签 c# asp.net-mvc-3 clickonce file-association

我想做什么

在我们的网络应用程序上单击下载文件链接时,浏览器将提示用户保存打开 文件。选择打开时,文件将在已安装的应用程序中打开。

到目前为止我有什么

我有一个像这样返回文件的 ASP.NET MVC 应用程序:

return File(bytes, "application/octet-stream", "file.rod");

我创建了一个 ClickOnce具有应用程序文件关联的安装程序,当提示保存文件时,文件会出现并带有已注册的文件关联图标,双击应用程序会按预期启动。

但是,当您选择打开 时,应用程序不会启动,这很奇怪,因为当从文件系统 (explorer.exe) 打开文件时它会正确启动。我目前的想法是,问题要么在于我设置文件关联的方式,要么在于我如何从浏览器发送数据(可能是内容类型?)。

这是 list 文件中的文件关联注册:

<fileAssociation xmlns="urn:schemas-microsoft-com:clickonce.v1"
    extension=".rod"
    description="Lollipops and Ice Cream"
    progid="Rod.Document"
    defaultIcon="risque.ico" />

我错过了什么?接下来我应该尝试什么?

还有一件事:我知道可以将查询参数传递给 ClickOnce 安装程序。这也是我正在考虑尝试的事情。

最佳答案

我认为您的内容类型需要在 return File() 行上为 application/x-ms-application;否则,IE 将无法识别它需要将其作为应用程序启动。对于 Firefox,我没有在最新版本中尝试过,但我记得需要一个 ClickOnce 插件才能正常工作。

关于c# - 如何使用从浏览器下载的应用程序启动 ClickOnce 应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9685457/

相关文章:

asp.net - IIS7环境下Application_Start异常处理

c# - 消除 RESTful 服务的歧义

asp.net-mvc-3 - 如何从 MVC 3 和 IIS7 提供程序集嵌入资源?

apache - 我可以使用 Apache 提供 ClickOnce 应用程序吗?

c# - Windows C# 表单 : Prompt focus on a textbox

c# - 如何在 C# 中创建我自己的 setup.exe 文件?

c# - 安装后如何手动注册ClickOnce文件关联?

ssl - 单击一次 Https : An error occurred trying to download https://

c# - 批量复制 C# 到 PostgreSql

c# - 如何在 C# 中创建 "unfocusable"表单?