如何拥有“动态”Click Once先决条件

时间:2010-10-14 12:06:32

标签: .net installer clickonce prerequisites

具体来说,SQL Express。我有一个内部winform应用程序,如果他们有一台笔记本电脑,需要安装SQL Express来启用某些功能。现在我正在为每个人安装它,因为它不会在需要的时间之外“伤害”桌面用户。我想在检测到它们是否在笔记本电脑上之后安装SQL。

点击一次,我的选择是什么?根据我的看法,我需要取消选中SQL Express作为先决条件,并在我的启动代码中手动处理它。我将如何/在哪里实现这一目标?

有更好的方法吗?如果我切换部署模型,那么更新的努力/时间是否会大幅增加?

1 个答案:

答案 0 :(得分:4)

先决条件是ClickOnce中最容易被误解的部分。 ClickOnce只是在客户端和服务器之间下载和同步文件的技术。 Visual Studio创建的引导程序(setup.exe)与ClickOnce无关,除了在完成后启动ClickOnce应用程序。这令人困惑,因为Visual Studio将它们全部混合在一起,所以每个人都认为它们是相关的。

如果您不希望每个人都拥有SQL Express,请将其从Visual Studio先决条件中删除。只要您的应用程序可以在没有安装SQL Express的情况下启动,您就可以在代码中手动处理它。在应用程序启动时,您可以检查注册表以查看是否已安装SQL Express,然后下载它,然后启动安装程序。我使用Crystal Reports安装程序完成了这项工作,确定无误。