你好,我是一名开发人员,正在考虑为将通过公司网络分发的内部 .NET Winforms 应用程序引入 ClickOnce 部署。
目前,产品的推出和更新由组策略处理,但我现在想通过 ClickOnce 部署来控制更新。
我想知道的是,我应该如何初步推出该软件包以确保所有用户都已获得它。我可以使用组策略组合(推出)然后依靠 ClickOnce 部署模型进行任何进一步的更新吗?
答案1
我还没听说有人能成功使用组策略部署 ClickOnce 应用程序。ClickOnce 虽然提供了简便的更新功能,但在安装机制方面却不太灵活。所以,据我所知,答案是否定的。
Joel Coehoorn 在 Stack Overflow 的这篇文章中提出了一种可能的混合方法: https://stackoverflow.com/questions/1841435/is-it-possible-to-automate-a-clickonce-deployment. 基本上,构建一个传统的 MSI 安装包,安装 ClickOnce 安装程序的快捷方式。
答案2
可以通过快捷方式的 msi 安装来部署 ClickOnce,但这几乎违背了“单击一次”的初衷。ClickOnce 专门设计为不可自动部署,因为它是为用户部署和更新而设计的(这就是为什么它被称为 ClickOnce 而不是 deployonce)通过组策略进行部署应通过 Windows 安装程序包(.MSI 文件)、转换文件(.MST 文件)和修补程序文件(.MSP 文件)进行。
如果您选择 ClickOnce 路线,您将无法依赖所有用户都已安装该软件包,即使您确实使用自己的 MSI 来安装 clickonce 应用程序快捷方式。无论实际软件包状态如何,MSI 安装程序始终会报告已安装,因为 Clickonce 无法向 MSI 报告。
从 Windows 管理员的角度来看,我会直接拒绝这个想法,如果你想使用 Clickonce 进行部署,我会告诉你向需要此应用程序的用户发送电子邮件并向他们发送安装程序的链接