.net 是否有人使用ClickOnce技术在生产中分发应用程序

.net 是否有人使用ClickOnce技术在生产中分发应用程序,.net,clickonce,.net,Clickonce,两年前,我尝试使用ClickOnce安装,但遇到以下问题: 由于出现错误,应用程序无法启动 对文件系统的访问受限 后来我看到google Chrome使用ClickOnce在本地获取安装包,然后开始真正的安装 是否可以使用ClickOnce从服务器下载文件并在本地保存?我们过去使用过ClickOnce,但后来放弃了它。必须有一个证书是一件痛苦的事,当我们更换它所在的服务器时,它坏了,我们不得不从所有客户端卸载,并用一个新的证书重新安装为一个新的应用程序。但是关于你的问题 ClickOnce可

两年前,我尝试使用ClickOnce安装,但遇到以下问题:

  • 由于出现错误,应用程序无法启动
  • 对文件系统的访问受限
后来我看到google Chrome使用ClickOnce在本地获取安装包,然后开始真正的安装


是否可以使用ClickOnce从服务器下载文件并在本地保存?

我们过去使用过ClickOnce,但后来放弃了它。必须有一个证书是一件痛苦的事,当我们更换它所在的服务器时,它坏了,我们不得不从所有客户端卸载,并用一个新的证书重新安装为一个新的应用程序。但是关于你的问题

ClickOnce可以标准方式(web服务器)部署到网络共享或CD。但是,如果您想避免出现问题,请不要使用ClickOnce。将文件下载到桌面并进行安装有点达不到目的


使用普通安装项目创建MSI,并将其发布到web。用户可以下载并运行安装程序。(如果Windows因为它来自不受信任的来源而阻止它,他们可能必须解除阻止。)

我的公司已经使用ClickOnce三年多了,我们有数千名客户安装了多个产品(桌面和Office插件),几乎没有什么麻烦。我们确实有一个签名证书,因为我们所有的客户都是外部的,它可以确保他们的安装来自可靠的来源

另外,如果使用自动更新和桌面应用程序(不适用于VSTO),更改签名证书的问题在.NET 3.5中得到了修复,并且在.NET 4中的所有情况下都得到了修复。对于仍然存在问题的情况,还有一些变通办法

ClickOnce的巨大优势在于能够发布更新并让用户自动获取更新,而且更新是增量的。如果您的应用程序访问数据库,并且您需要确保用户在将更改部署到数据库时更新应用程序,则这一点尤为重要

如果您有一个ClickOnce应用程序,并且在启动时出现错误,则需要尝试从ClickOnce缓存运行[exe],并确定问题是在您的应用程序中还是在部署中

我不知道你从服务器下载ClickOnce并在本地保存文件是什么意思。如果你指的是部署本身,它就是这样做的。如果你的意思是它可以从其他地方下载文件并保存在本地,那么它当然可以。我们的应用程序使用WebClient来上传和下载文件


请注意,ClickOnce应用程序不会为所有用户安装,并且您不能写入程序文件。如果要使用其他文件,则需要将它们填充到LocalApplicationData中。我们的应用程序在LAD文件夹下创建一个缓存,并在那里保留信息,这对我们来说很好。

+1。谢谢你的更新,特别是对我们困境的修复。我最初喜欢ClickOnce,现在我可能会再给它一次机会。不客气。您也可以访问我的博客-,我正在尝试回答我在MSDN ClickOnce论坛上看到的很多问题,并提供一些不为人所知的有用信息,如如何将参数传递到离线ClickOnce应用程序,如何保护您的数据不受ClickOnce更新的影响,等等。希望这会有所帮助!