我在2年前尝试使用ClickOnce安装并遇到问题:
后来我看到google Chrome使用ClickOnce在本地获取安装包,然后开始真正的安装
是否可以使用ClickOnce功能从服务器下载文件并在本地保存?
答案 0 :(得分:4)
我的公司已经使用ClickOnce超过三年,我们有成千上万的客户安装多个产品(桌面和Office插件),几乎没有什么麻烦。我们有一个签名证书,因为我们所有的客户都是外部的,并且它确保安装来自可靠的来源。
此外,如果使用自动更新和桌面应用程序(不适用于VSTO),则在.NET 3.5中修复了更改签名证书的问题,并且在.NET 4中的所有情况下都修复了此问题。并且有针对这些案例的解决方法它仍然是一个问题。
ClickOnce的巨大优势是能够发布更新并让用户自动选择更新,以及更新是增量的。如果您的应用程序访问数据库,这一点尤为重要,并且您需要确保用户在更改数据库时更新应用程序。
如果您有ClickOnce应用并且在启动时遇到错误,则需要尝试从ClickOnce缓存运行[exe]并确定问题是在您的应用程序中还是在部署中。
我不确定从服务器下载ClickOnce并在本地保存文件的含义。如果你的意思是部署本身,它就是这样做的。如果你的意思是它可以从其他地方下载文件并在本地保存它们,确定它可以。我们的应用程序使用WebClient上传和下载文件。
请注意,ClickOnce应用程序不会为所有用户安装,也无法写入Program Files。如果您正在使用其他文件,则需要将它们填入LocalApplicationData。我们的应用程序在LAD文件夹下创建一个缓存并在那里保留信息,这对我们来说很好。
答案 1 :(得分:2)
我们过去使用过ClickOnce,但放弃了它。必须拥有证书是一件痛苦的事情,当我们更换托管的服务器时,它就会破坏,我们不得不从所有客户端卸载并重新安装为具有新证书的新应用程序。但是你的问题......
ClickOnce可以以标准方式(Web服务器)部署到网络共享或CD。但是,如果您想避免出现问题,请不要使用ClickOnce。将文件下载到桌面并进行安装排序会失败。
使用常规安装项目创建MSI,并将其发布到Web。用户可以下载并运行设置就好了。 (但是,如果Windows阻止它,它们可能必须取消阻止它,因为它来自不受信任的来源。)