C#部署我的应用程序 – 仅从Web进行单击

所以我用C#开发了我的应用程序。 我准备好部署它。 我想做到这一点,以便用户总是从我的网站启动它(这样他们总是得到更新,没有安装等)。

ClickOnce是正确的方法吗?

我尝试将ClickOnce部署到我的服务器上并向我跳出一些东西:

1)用户可以选择运行设置或启动.application文件 – 有什么区别? 它不能自己检测到这个吗?

2)当我尝试“启动”.application时,它要求将其下载到我的计算机上。 无论如何只是直接从浏览器启动文件?

3)下载并运行.application文件后,出现以下消息时出现错误:“部署和应用程序没有匹配的安全区域。”

是的,ClickOnce完全符合您的需求。

  1. setup.exe或称为“bootstrapper”用于安装诸如.NET Framework和Microsoft Installer之类的先决条件,因为它是包含ClickOnce运行时的.NET框架,这是安装应用程序所必需的。 引导程序只需要使用一次,并且只能在没有这些先决条件的计算机上使用,之后只有.application文件(称为“部署清单”)用于更新。 使用ClickOnce发布时,会创建一个Publish.htm文件,其中包含一些JavaScript代码,用于检测用户是否已安装必备组件。 如果用户没有,则会显示一个链接到setup.exe的按钮,否则会显示一个直接链接到.application文件的按钮。 您可以使用该页面(或基于它创建一个页面)为您的用户提供最短的安装体验。

  2. .NET Framework未安装在客户端的计算机上(在这种情况下,使用引导程序),或者您的Web服务器未正确配置,因此不会将.application扩展名与application/x-ms-application的MIME类型相关联application/x-ms-application 。 创建该关联以解决问题。 我还建议添加一些http标头来禁用部署清单上的缓存,否则用户的浏览器可以缓存它,这可能会导致用户丢失更新。

  3. 您无法在本地为已发布到Web位置的ClickOnce安装下载和运行部署清单文件,因为ClickOnce为本地安装(例如来自本地计算机或网络共享)提供了更高的信任级别,但应用程序清单点到Web上的安装源,它具有较低的信任级别,因此失败。 解决问题2后,此问题也将得到解决。