存储在应用程序中的版本和公钥令牌信息在哪里?

时间:2014-10-17 11:45:25

标签: dll

我将项目从TFS加载到本地计算机。但它需要log4Net库,我从互联网上下载。它成功重建。但是当它运行时,异常就会出现。

Could not load file or assembly 'log4net, Version=1.2.10.0, Culture=neutral, 
PublicKeyToken=1b44e1d426115821' or one of its dependencies. 
The located assembly's manifest definition does not match the assembly reference. 
(Exception from HRESULT: 0x80131040)

我知道这是混合版本和公钥令牌的问题。但我的问题是,当代码在visual studio中运行时,它怎么知道它需要在version1.2中使用log4net?有人可以帮忙吗?谢谢。

1 个答案:

答案 0 :(得分:0)

这里有一个项目中的程序集referencing与此版本的log4net程序集;它可以是直接引用,也可以是间接引用(您的项目引用引用log4net.dll的A.dll)

查看您的项目以查找引用程序集,并满足引用(通过nuget获取正确的版本,这是最简单的)或更改它。引用的程序集包含在项目文件(* .csproj或适用于您的语言的任何扩展名)中,并带有Reference标记

当您包含参考时,命名强度取决于您选择的设置:

<Reference Include="name">
<!-- here no version is specified because no specific version is needed -->

<Reference Include="name, Version=xxx, Culture=neutral, processorArchitecture=MSIL">     
<-- version is specified, perhaps because a specific version was referenced at one time --> 

可以在this very site

找到更多信息