2014-01-14 41 views
0

我正在写一个c#WinForms应用程序。我引用第三方DLL(SDK)来执行特定的任务。我期望这个DLL被安装在客户端机器上。如何处理与第三方dll参考应用程序

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

后来,如果客户端已升级到版本2,我的应用程序将无法正常工作,因为没有更多的版本1 dll。

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

回答

4

您可以将程序集绑定重定向添加到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

+0

+1。如果“第三方SDK”预计将被使用而不是升级,则会为机器指定此策略......或者至少让SDK客户端知道如何处理新版本...由于OP没有获取/找到此类信息期望向后兼容性可能过于乐观... –

+0

即使我的应用程序比已安装的SDK版本更新,这种处理方式吗? – billboard

+0

@billboard - 它不检查你的应用程序的版本。它基本上说,绑定到SDK组件的_oldVersion_的任何请求都会将它们重定向到SDK assembly的_newVersion_。我认为只要新版本向后兼容,它应该可以工作。 –