【问题标题】:Deploying an updated DLL to multiple ClickOnce manifests将更新的 DLL 部署到多个 ClickOnce 清单
【发布时间】:2014-08-14 19:47:39
【问题描述】:

首先,我对部署 ClickOnce 清单有些陌生。我知道如何发布到应用服务器的基础知识,然后让每个人都使用最新版本(在设置为在运行应用程序之前检查更新之后)。

我们的应用服务器上存储了多个 VB.Net 应用程序,它们涵盖了公司的许多不同领域。但是,它们都以相同的方式连接到我们的 Oracle 数据库。所以,我的想法是创建一个包含常用函数的 DLL,例如解密和读取我们的连接字符串,以及我们经常使用的一些非常常见的 SQL 函数/语句。然后,无需将相同的代码复制并粘贴到每个 .Net 程序中,而是将其存储在一个地方。当然,这样做的主要好处是,如果我们更改连接数据库的方法,或者需要修改/添加功能,我们不需要打开每个程序,将其粘贴并重新发布

所以,我做了一个测试,我拿了一个我写的程序,将 DLL 添加到它并测试它。它工作得很好。然后我获取了 DLL 的源代码,进行了更改以在函数的开头显示一个消息框,重新构建 DLL,并将其放置在测试程序中引用的副本的位置。当我运行程序时,它仍然使用原来的 DLL,没有消息框代码。

我的问题是,我怎样才能完成我想做的事情,而不必在每次更改时重新发布使用此 DLL 的每个 .Net 程序?

【问题讨论】:

    标签: vb.net dll clickonce


    【解决方案1】:

    选项 1

    不要通过单击一次来发布您的 dll 库,而是在您的 dll 类库周围放置一个 Web 服务包装器。每个 Click once 应用程序都将引用将在 Web 服务器上运行的 Web 服务。

    您在 dll 中的代码将在网络服务器上运行。对 dll 代码的任何更改只需要在 Web 服务器上进行更新。您必须小心将界面更改保持在最低限度。

    选项 2

    将 dll 作为单独的 MSI 安装推出。在单击一次应用程序代码中引用 dll,并确保您不通过单击一次安装来部署 dll。对 dll 的更改将单独推出。

    【讨论】:

    • 谢谢!这非常有帮助。我还找到了另一个解决方案,通过在运行时加载 DLL 并在编写代码时使用接口类在代码中使用。不确定我会采用哪种方法,但这肯定有很大帮助!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多