【问题标题】:How to handle application with 3rd party dll reference如何使用 3rd 方 dll 参考处理应用程序
【发布时间】:2014-01-14 23:00:46
【问题描述】:

我正在编写一个 c# WinForms 应用程序。我引用了第 3 方 dll (SDK) 来执行特定任务。我希望这个 dll 安装在客户端机器上。

现在,如果我使用版本 1 作为参考,并且客户端安装了版本 1。该应用程序有效。

稍后,如果客户端升级到版本 2,我的应用程序将无法运行,因为没有版本 1 的 dll。

如何编码我的应用程序?每个版本的第 3 方 dll 一个?或者,还有更好的方法? (SDK向后兼容)

【问题讨论】:

    标签: c# .net dll


    【解决方案1】:

    您可以将程序集绑定重定向添加到 app.config。像这样的:

    <dependentAssembly>
        <assemblyIdentity name="someAssembly"
          publicKeyToken="32ab4ba45e0a69a1"
          culture="en-us" />
    
        <bindingRedirect oldVersion="7.0.0.0" newVersion="8.0.0.0" />
    </dependentAssembly>
    

    this link

    【讨论】:

    • +1。如果“第 3 方 SDK”期望它被使用而不是升级它会为机器指定这个策略......或者至少让 SDK 客户端知道如何处理新版本......因为 OP 没有获取/找到这样的信息期望向后兼容可能过于乐观......
    • 即使我的应用程序比安装的 SDK 版本更新,这是否也能处理?
    • @billboard - 它不检查您的应用程序的版本。它基本上是说,任何绑定到 SDK 程序集的 oldVersion 的请求都会将它们重定向到 SDK 程序集的 newVersion。我认为只要新版本向后兼容,它应该可以工作。
    猜你喜欢
    • 2014-05-15
    • 1970-01-01
    • 1970-01-01
    • 2012-10-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-31
    • 1970-01-01
    相关资源
    最近更新 更多