所以我用 C# 开发了我的应用程序。我已准备好部署它。我想让用户始终从我的网站启动它(以便他们始终获得更新,无需安装等)。
ClickOnce 是执行此操作的正确方法吗?
我尝试将 ClickOnce 部署到我的服务器上,但我发现了一些事情:
1) 用户可以选择运行安装程序或启动 .application 文件 - 有什么区别?它自己不能检测到吗?
2)当我尝试“启动”.application 时,它要求将其下载到我的计算机上。无论如何,直接从浏览器启动文件?
3) 下载并运行 .application 文件后,出现错误并显示以下消息:“部署和应用程序没有匹配的安全区域。”
是的,ClickOnce 非常适合您的需求。
The 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 为本地安装(例如从本地计算机或网络共享)提供了更高的信任级别,但应用程序清单指向到网络上的安装源,该安装源的信任级别较低,因此会失败。一旦解决了问题2,这个问题也就解决了。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)