项目在运行时需要旧版本的程序集

时间:2018-04-27 09:04:02

标签: c# .net-assembly

的StackOverflow

一点史前史:
我有一个目标.NET Framework platform = 4.0 的项目 它在 app.config 中的<dependencyAssemblies>部分中有很多<assemblyReference> 在一个美好的日子里,我选择将此版本更改为.NET 4.7

首先,我清楚所有<runtime>部分 并在update-package -reinstall中运行命令Package Manager Console 我的项目正确构建。一切都很好,但后来我尝试运行单元测试项目。

构建时我在输出控制台中接收了这种类型的警告:

Consider app.config remapping of assembly 
"Microsoft.Owin, Culture=neutral, PublicKeyToken=31bf3856ad364e35" 
from Version "2.1.0.0" [] to Version "4.0.0.0" 
[C:\Src\packages\Microsoft.Owin.4.0.0\lib\net451\Microsoft.Owin.dll] 
to solve conflict and get rid of warning.

P.S。但在我的app.config <runtime>部分不存在!哪里找到2.1版本的Microsoft.Owin?
但在运行时我得到这个错误:

System.IO.FileLoadException : Could not load file 
or assembly 'Microsoft.Owin, Version=2.1.0.0, Culture=neutral, 
PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The located 
assembly's manifest definition does not match the assembly reference. 
(Exception from HRESULT: 0x80131040)

当我尝试使用某些代码时出现此错误:using Microsoft.Owin;

我觉得我的项目有一个隐藏引用旧版本的Microsoft.Owin库,但是......按所有解决方案搜索,包括csproj文件(Owin的2.1版本)都不会产生结果。

我不明白为什么我的项目需要该库的旧版本,如果项目包含最新版本及其参考。

请帮助,谢谢!

0 个答案:

没有答案