在使用其他家提供的庫文件進行開發時,按步調試報出了 無可用源的 錯誤!
仔細查看了解決方案對庫文件的引用,沒有問題。
在.cs開發文件中也正常使用了 using語句加以引入,這都沒問題。
在網上查找問題源頭時,有人提醒可能是庫文件使用的是低版本的運行時編譯的。用高版本的運行時重新編譯下再引用即可。
檢查了下程序集文件,發現提供的.dll庫文件確實是低版本運行時編譯的。
查看方法如下,切換到 解決方案管理器-->引用-->(找到目標庫文件,我的庫文件是reader.dll)-->右鍵庫文件-->屬性-->最下一欄里寫着運行時版本
經查看,確實是運行時版本低,其他庫文件都是v4.0.30319版本,而reader.dll是v2.0.50727。
這樣問題的源頭算是找到了。
接下來查找了一些資料,知道.net是允許不同版本運行時的程序集運行的,只需要在app.config(我是winform項目)里配置即可。
輸入如下代碼
<configuration> <startup useLegacyV2RuntimeActivationPolicy="true"> <supportedRuntime version="v2.0.50727"></supportedRuntime> <supportedRuntime version="4.0.30319" ></supportedRuntime> </startup> </configuration>
意為支持兩種運行時的版本。
但是仍然報錯。
后來經查書發現,先寫的supportedRuntime 版本號會優先運行,應該把高版本的supportedRuntime放在上邊,於是改下順序
<configuration> <startup useLegacyV2RuntimeActivationPolicy="true"> <supportedRuntime version="4.0.30319" ></supportedRuntime> <supportedRuntime version="v2.0.50727"></supportedRuntime> </startup> </configuration>
問題解決!