能否自动化ClickOnce部署?

6
我在一个由服务器和客户端应用程序组成的项目上工作,通过ClickOnce部署。第一次用户点击http://...file.application链接时,客户端将被安装,并且在安装过程中与用户的交互很少(只有标准的ClickOnce安装/不安装对话框)。
我们的一个客户想要能够自动安装客户端到用户的机器上。是否有一种方法可以在没有任何用户交互的情况下安装ClickOnce应用程序,以便自动化部署过程?
是否存在提供这种部署的软件?
我的问题在于我不知道ClickOnce部署在幕后是如何工作的(我甚至不知道是否可能从命令行运行ClickOnce安装程序...),并且由于ClickOnce应用程序根本没有像Windows Installer那样打包,所以我对任何事情都不确定。

3
所以……一个点击即可部署的Nunce。 :) - Craig
3个回答

6

有许多第三方解决方案可用于自动化部署。您还可以创建自己的脚本,但需要某种调用它们的方式。如果您的客户机已配置为查找位于网络上的启动脚本,则这将是一种理想方法。通常,自动化部署使用标准部署包,即包含setup.exe和所需文件的包,因此这可能是打包应用程序的最佳方式。

ClickOnce专门设计用于由终端用户进行手动部署,并且在目标自动化部署时只会使事情更加混乱。显然,您可以保留ClickOnce部署以便有人想手动安装您的应用程序,但如果单独为自动化部署打包它,将使事情更加容易。


ClickOnce是专门为最终用户的手动部署而设计的,当目标是自动化部署时,它只会让事情变得更加混乱。这是真的,当我考虑这个问题时,我也感到困惑。如果像你建议的那样,我为自动化部署打包应用程序,那么这个应用程序是否会与ClickOnce部署的应用程序不同?这将可能导致同一个应用程序被安装两次,对吗? - alfred barthand
这是真的,ClickOnce安装将独立于自动部署的应用程序存在。但是,只要发布的ClickOnce部署从未早于自动部署的版本,那么这不应该是一个问题。只要启动ClickOnce版本的用户没有比自动部署包更旧的版本,那么运行单独的安装程序并不重要。 - Adam Ralph

1

您可以构建标准的MSI安装程序,并通过组策略进行部署,但更新稍微有些棘手。作为混合方案,您可以构建一个MSI安装程序(通过组策略进行部署),它只是在桌面上安装了指向正确ClickOnce地址的快捷方式。以这种方式,用户始终运行最新版本的ClickOnce应用程序,确保在运行时其保持最新状态。


1

它可以自动化。诀窍在于生成和签名清单的方式。

一旦构建了应用程序清单并重命名部署的文件,您就有一组文件和文件夹,可以将其复制到安装源中。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接