所以我用C#开发了我的应用程序。我准备好部署它。我想做到这一点,以便用户始终从我的网站启动它(这样他们总是得到更新,没有安装等)。
ClickOnce是正确的方法吗?
我尝试将ClickOnce部署到我的服务器上,并向我发出一些信息:
1)用户可以选择运行设置或启动.application文件 - 有什么区别?它不能自己检测到这个吗?
2)当我尝试“启动”.application时,它要求将其下载到我的电脑上。无论如何直接从浏览器启动文件?
3)下载并运行.application文件后,出现以下消息时出现错误:“部署和应用程序没有匹配的安全区域。”
答案 0 :(得分:9)
是的,ClickOnce完全符合您的需求。
调用setup.exe
或“bootstrapper”用于安装诸如.NET Framework和Microsoft Installer之类的先决条件,因为它是包含ClickOnce运行时的.NET框架,需要安装您的应用程序。引导程序只需要使用一次,并且只能在没有这些先决条件的计算机上使用,之后只有.application
文件(称为“部署清单”)用于更新。使用ClickOnce发布时,会创建一个Publish.htm
文件,其中包含一些JavaScript代码,用于检测用户是否已安装必备组件。如果用户没有,则会显示一个链接到setup.exe
的按钮,否则会显示一个直接链接到.application
文件的按钮。您可以使用该页面(或根据它创建一个页面)为您的用户提供最短的安装体验。
客户端计算机上未安装.NET Framework(在这种情况下,使用引导程序),或者您的Web服务器配置不正确,因此不会将.application
扩展名与MIME类型application/x-ms-application
。创建该关联以解决问题。我还建议添加一些http标头来禁用部署清单上的缓存,否则用户的浏览器可以缓存它,这可能导致用户缺少更新。
您无法在本地为发布到Web位置的ClickOnce安装下载和运行部署清单文件,因为ClickOnce为本地安装(例如来自本地计算机或网络共享)提供了更高的信任级别,但应用程序清单指向Web上的安装源,它具有较低的信任级别,因此失败。解决问题2后,此问题也将得到解决。