2014-01-14 42 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_。我認爲只要新版本向後兼容,它應該可以工作。 –