使用 .NET 和 ClickOnce 的最终用户特定组件

Posted

技术标签:

【中文标题】使用 .NET 和 ClickOnce 的最终用户特定组件【英文标题】:End-user specific components with .NET and ClickOnce 【发布时间】:2013-08-24 19:44:58 【问题描述】:

我们有一个 .NET/WPF 应用程序,我们打算使用 ClickOnce 将其部署到多个最终用户。在应用程序中,我们需要从最终用户使用的许多其他应用程序数据库中读取数据,例如会计数据库等(不受我们控制)。这些外部应用程序数据库可能彼此不同,因此我们不能直接将代码合并到我们的应用程序中以连接和读取这些数据库。基本上,我们需要为每个最终用户部署一个略有不同的应用程序。

问题:假设我们使用 ClickOnce 作为部署方法,首选的方法是什么?

我最初的想法是拥有一个独特的自定义 dll 组件,我们将它发送给每个最终用户。 dll 将保存代码以读取特定最终用户的数据库并将数据返回到主应用程序(主应用程序对于每个最终用户都是完全相同的)。 我们还必须能够修改任何这些最终用户特定的 dll,以防最终用户决定更改他们的数据库。

我想要一些指导/建议。

【问题讨论】:

不同的用户数据库是相同的结构和数据,还是每个客户的数据访问完全不同? 【参考方案1】:

我们有非常相似的项目——我们最终在第一次运行时显示了一个对话框,要求用户输入数据库的连接字符串。然后将该数据保存到本地配置文件中。

在我看来,通过电子邮件发送连接字符串比向每个客户端发送自定义 DLL 容易得多。

【讨论】:

以上是关于使用 .NET 和 ClickOnce 的最终用户特定组件的主要内容,如果未能解决你的问题,请参考以下文章

.NET ClickOnce 没有安装必备文件?

ClickOnce 和 .NET 5:用户设置未更新

如何通过 CruiseControl.NET 发布 ClickOnce 应用程序?

ClickOnce,反射和安全

Visual Studio ClickOnce 部署是不是自动包含必要的 .NET 框架?

ClickOnce 先决条件 - 如何管理先决条件的安装顺序?