日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【转】[程序集清单定义与程序集引用不匹配]分析及解决

發布時間:2023/12/10 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【转】[程序集清单定义与程序集引用不匹配]分析及解决 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

轉自:https://www.cnblogs.com/shuangzimuchangzhu/p/8572817.html

什么是程序集清單(Assembly Manifest)?

??我們知道,在.net中。程序是以程序集為單位進行打包的,通常一個.exe文件或一個.dll文件就是一個程序集。程序集一般包含了以下幾個部分:

1,程序集清單(或者叫程序集元數據);

2,類型元數據;

3,MSIL代碼;

4,資源(可選項).

如此說來,一般情況下一個.exe或.dll都會包含這此內容。

具體請參考:http://msdn2.microsoft.com/zh-cn/library/zst29sk2(VS.80).aspx

? ?在程序集中,程序集清單(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配置

將4.1.1.0改為4.0.0.0,問題解決

總結

以上是生活随笔為你收集整理的【转】[程序集清单定义与程序集引用不匹配]分析及解决的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。