引用自這裏數據庫
什麼是程序集清單(Assembly Manifest)?
咱們知道,在.net中。程序是以程序集爲單位進行打包的,一般一個.exe文件或一個.dll文件就是一個程序集。程序集通常包含了如下幾個部分:
1,程序集清單(或者叫程序集元數據);
2,類型元數據;
3,MSIL代碼;
4,資源(可選項).
如此說來,通常狀況下一個.exe或.dll都會包含這此內容。
在程序集中,程序集清單(manifest)是比較重要的,簡單地講它包含了一個程序集須要引用的外部分文件及程序集所包含的內容。其實也就是微軟說的「自我說明」。咱們能夠經過Visual Studio2003自帶的ILDASM工具查看該清單:
1,打開ILDASM,通常位於:VS2003安裝目錄\SDK\v1.1\Bin\目錄下。
2,打開ILDASM,後選擇文件->打開,將想要查看的程序集加進來。
3,雙擊「MANIFEST」;
打開後會看到以下內容:
上圖的MANIFEST就是程序清單,像紅線部分標出的是該程序集須要引用到外部文件Infragistics.WebUI.UltraWebGrid.ExcelExport.v3.1,同時也標識了版本號和密鑰。
至此,咱們知道是什麼是程序集清單以及怎麼樣查看一個程序集清單了。下面咱們再看看什麼是程序集引用。
什麼是程序集的引用?
在VS2003下編程的朋友們都知道,當咱們用第三方控件,或是別人寫的DLL時,我所要作的就是將其引用進來。引用一個程序集的動做分爲兩步:
首先,在項目中將須要的引用的程序集「添加至」引用中。
其次,在源文件件引入(using namespace)別人的命名空間;
以下:
如此將其引用進來之後,咱們就可使用該第三方控件提供的類、方法、資源等功能了。好比咱們將「System.Data.SqlClient」引入之後,咱們就能夠經過其提供的類進行數據庫的鏈接及操做了。
而後,具體的問題是:
在ABP的程序包管理器控制檯中執行Add-Migration Initial,報如下錯誤
未能加載文件或程序集「Castle.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=407dd0808d44fbdc」或它的某一個依賴項。找到的程序集清單定義與程序集引用不匹配。 (異常來自 HRESULT:0x80131040)
剛開始我覺得是程序集引用的問題,由於它的文件顯示是4.2.1版本的,然而引用是4.0.0.0的編程
可是從新移除再添加仍是4.0.0.0,看了它的程序集清單也是4.0.3工具
清單沒錯那就是引用錯了,可是引用也顯示4.0.0.0,那應該是配置錯了,而後查看EntityFramework配置spa
將4.1.1.0改成4.0.0.0,問題解決.net