C# 開發無可用源的解決方法


在使用其他家提供的庫文件進行開發時,按步調試報出了 無可用源的 錯誤!

仔細查看了解決方案對庫文件的引用,沒有問題。

在.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>

 

問題解決!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM