.net - 如何满足 "dynamic"Click Once 先决条件

标签 .net installation clickonce prerequisites

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

对于 Click Once,我有哪些选择?据我所知,我需要取消选中 SQL Express 作为先决条件,并在启动代码中手动处理它。我如何/在哪里实现这一目标?

还有更好的办法吗?如果我切换部署模型,更新的工作量/时间不会大幅增加吗?

最佳答案

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

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

关于.net - 如何满足 "dynamic"Click Once 先决条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3932886/

相关文章:

.net - 如何根据 namespace 正确命名类?

c# - 在 C# (WPF) 中,当 UI 线程中的数据立即更改时,是否会发生数据绑定(bind)?

android - Eclipse - ADT 插件不自动完成

wix - 使用 WiX Burn 静默安装 SqlLocalDB.msi #EDIT3

clickonce - ClickOnce 如何将 app.config 从开发更改为部署一?

Nuget 包不是通过 clickonce 发布的

安装后 ClickOnce 无法启动

.net - OnException - 两次调用

c# - 使用本地化枚举作为数据源

perl - 如何在 Ubuntu 中安装 ROUGE