ABP项目:未能加载文件或程序集“Castle.Core, Version=4.1.1.0, Culture=neutral”或它的某一个依赖项。找到的程序集清单定义与程序集引用不匹配

运行ABP  MVC 版本的singlepage时,使用code first方式迁移数据库时,提现版本不对,如下所示:

PM> add-migration InitialCreate
System.IO.FileLoadException: 未能加载文件或程序集“Castle.Core, Version=4.1.1.0, Culture=neutral, PublicKeyToken=407dd0808d44fbdc”或它的某一个依赖项。找到的程序集清单定义与程序集引用不匹配。 (异常来自 HRESULT:0x80131040)
文件名:“Castle.Core, Version=4.1.1.0, Culture=neutral, PublicKeyToken=407dd0808d44fbdc” ---> System.IO.FileLoadException: 未能加载文件或程序集“Castle.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=407dd0808d44fbdc”或它的某一个依赖项。找到的程序集清单定义与程序集引用不匹配。 (异常来自 HRESULT:0x80131040)
文件名:“Castle.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=407dd0808d44fbdc”
 
警告: 程序集绑定日志记录被关闭。
要启用程序集绑定失败日志记录,请将注册表值 [HKLM\Software\Microsoft\Fusion!EnableLog] (DWORD)设置为 1。
注意: 会有一些与程序集绑定失败日志记录关联的性能损失。
要关闭此功能,请移除注册表值 [HKLM\Software\Microsoft\Fusion!EnableLog]。
 
   在 System.Signature.GetSignature(Void* pCorSig, Int32 cCorSig, RuntimeFieldHandleInternal fieldHandle, IRuntimeMethodInfo methodHandle, RuntimeType declaringType)
   在 System.Reflection.RuntimeMethodInfo.FetchNonReturnParameters()
   在 System.Reflection.RuntimeMethodInfo.GetParametersNoCopy()
   在 System.Reflection.RuntimePropertyInfo.GetIndexParametersNoCopy()
   在 System.Reflection.RuntimePropertyInfo.GetIndexParameters()
   在 System.Data.Entity.Internal.DbSetDiscoveryService.<>c.<GetSets>b__4_1(PropertyInfo p)
   在 System.Linq.Enumerable.WhereArrayIterator`1.MoveNext()
   在 System.Data.Entity.Internal.DbSetDiscoveryService.GetSets()
   在 System.Data.Entity.Internal.DbSetDiscoveryService.InitializeSets()
   在 System.Data.Entity.DbContext.InitializeLazyInternalContext(IInternalConnection internalConnection, DbCompiledModel model)
   在 Abp.EntityFramework.AbpDbContext..ctor(String nameOrConnectionString)
   在 Sample.ABPMVCAngular.EntityFramework.ABPMVCAngularDbContext..ctor() 位置 D:\CodeRepository\Learning\ABP\Sample.ABPMVCAngular\5.0.0\src\Sample.ABPMVCAngular.EntityFramework\EntityFramework\ABPMVCAngularDbContext.cs:行号 27
--- 引发异常的上一位置中堆栈跟踪的末尾 ---
   在 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   在 System.Data.Entity.Infrastructure.DbContextInfo.CreateInstance()
   在 System.Data.Entity.Infrastructure.DbContextInfo..ctor(Type contextType, DbProviderInfo modelProviderInfo, AppConfig config, DbConnectionInfo connectionInfo, Func`1 resolver)
   在 System.Data.Entity.Migrations.DbMigrator..ctor(DbMigrationsConfiguration configuration, DbContext usersContext, DatabaseExistenceState existenceState, Boolean calledByCreateDatabase)
   在 System.Data.Entity.Migrations.DbMigrator..ctor(DbMigrationsConfiguration configuration)
   在 System.Data.Entity.Migrations.Design.MigrationScaffolder..ctor(DbMigrationsConfiguration migrationsConfiguration)
   在 System.Data.Entity.Infrastructure.Design.Executor.CreateMigrationScaffolder(DbMigrationsConfiguration configuration)
   在 System.Data.Entity.Infrastructure.Design.Executor.ScaffoldInternal(String name, DbConnectionInfo connectionInfo, String migrationsConfigurationName, Boolean ignoreChanges)
   在 System.Data.Entity.Infrastructure.Design.Executor.Scaffold.<>c__DisplayClass0_0.<.ctor>b__0()
   在 System.Data.Entity.Infrastructure.Design.Executor.OperationBase.<>c__DisplayClass4_0`1.<Execute>b__0()
   在 System.Data.Entity.Infrastructure.Design.Executor.OperationBase.Execute(Action action)

排查过程,根据提示,是找不到 Version=4.1.1.0的Castle.Core程序集。

查看.EntityFramework与.Core项目的nuget程序包,发现Castle.Core都是4.4.0版本
两个项目下的app.config文件中引用的是4.1.1.0版本,而packages.config中用的都是4.4.0版本,如下,得出的结论:系统中加载使用的的是4.4.0版本。而配置中还是使用旧的4.1.1.0版本。

--app.config
<dependentAssembly>
        <assemblyIdentity name="Castle.Core" publicKeyToken="407dd0808d44fbdc" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-4.1.1.0" newVersion="4.1.1.0" />
</dependentAssembly>
 
--packages.config
<package id="Castle.Core" version="4.4.0" targetFramework="net461"/>

结论:

只需要将.EntityFramework与.Core项目中的app.config配置改为4.4.0版本即可,

和packages.config中用的都是4.4.0版本一致

如下

      <dependentAssembly>
        <assemblyIdentity name="Castle.Core" publicKeyToken="407dd0808d44fbdc" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-4.1.1.0" newVersion="4.4.0" />
      </dependentAssembly>
 
 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值