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

引用自这里数据库

什么是程序集清单(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

相关文章
相关标签/搜索