C#部署我的应用程序-仅从web单击一次
因此,我在C#中开发了我的应用程序。我已经准备好部署它了。我想让用户总是从我的网站上启动它(这样他们总是得到更新,不安装,等等) ClickOnce是正确的方法吗 我尝试将ClickOnce部署到我的服务器,但有几件事突然发生了: 1) 用户可以选择运行安装程序或启动.application文件-有什么区别?它自己就不能检测到吗 2) 当我尝试“启动”应用程序时,它会要求将其下载到我的计算机上。不管怎样,直接从浏览器启动文件C#部署我的应用程序-仅从web单击一次,c#,deployment,clickonce,C#,Deployment,Clickonce,因此,我在C#中开发了我的应用程序。我已经准备好部署它了。我想让用户总是从我的网站上启动它(这样他们总是得到更新,不安装,等等) ClickOnce是正确的方法吗 我尝试将ClickOnce部署到我的服务器,但有几件事突然发生了: 1) 用户可以选择运行安装程序或启动.application文件-有什么区别?它自己就不能检测到吗 2) 当我尝试“启动”应用程序时,它会要求将其下载到我的计算机上。不管怎样,直接从浏览器启动文件 3) 下载并运行.application文件后,我收到一条错误消息:“
3) 下载并运行.application文件后,我收到一条错误消息:“部署和应用程序没有匹配的安全区域。”是的,ClickOnce非常适合您的需要
setup.exe
,或其名称为“bootstrapper”,用于安装必备组件,如.NET Framework和Microsoft Installer,因为它是包含ClickOnce运行时的.NET Framework,安装应用程序需要ClickOnce运行时。引导程序只需使用一次,并且只能在不具备这些先决条件的计算机上使用,之后,只有名为“部署清单”的.application
文件用于更新。使用ClickOnce发布时,将创建一个publish.htm
文件,其中包含一些JavaScript代码,用于检测用户是否安装了必备软件。如果用户没有,它将显示一个链接到setup.exe
的按钮,否则它将显示一个直接链接到应用程序
文件的按钮。您可以使用该页面(或基于该页面创建一个页面)为用户提供尽可能短的安装体验.application
扩展与MIME类型application/x-ms-application
相关联。创建该关联以解决该问题。我还建议添加一些http头来禁用部署清单上的缓存,否则用户的浏览器会缓存它,这可能会导致用户丢失更新回答得很好。还有几个问题:1)我应该将用户链接到安装文件还是.application文件?2) 它可以在IE中正常启动,但不能在firefox中正常启动。在Firefox中,它要求下载文件。这是MIME类型配置问题吗?(Linux/Apache服务器)@whydna:谢谢!1.我编辑了答案来谈论
Publish.htm
,2。从Firefox安装ClickOnce应用程序需要一个插件,如带有.NET Framework 3.5 SP1的插件,或第三方插件,如。那么,我对Firefox/Chrome/其他浏览器有哪些选择?此外,它似乎没有检测到用户是否已经按照您在文章中提到的那样运行了安装程序。它只显示2个链接,并要求用户找出它。基本上,bootstrapper用于除IE以外的所有浏览器,因为它知道如何正确调用ClickOnce。这也反映在Publish.htm
文件中-如果浏览器不是IE或Firefox,它将直接链接到引导程序。您可能希望对其进行更改,这样即使它检测到Firefox,它也会链接到引导程序,因为大多数人的机器上都没有安装该插件。至于你的Publish.htm
,这很奇怪,因为我只看到一个带有IE8的按钮。同样,您可能甚至不想依赖于Publish.htm
并始终链接到引导程序。如果用户没有安装必备软件,引导程序将自动下载并安装它们(这就是它的用途)。如果它们已经安装,它将把控制权移交给ClickOnce安装程序。请记住,安装先决条件需要管理员权限(如果UAC打开,它将提示管理员权限),而安装ClickOnce应用程序则不需要管理员权限。