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

Dll 应用程序中存储的版本和公钥令牌信息在哪里?,dll,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

我将项目从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)

我知道这是混合版本和公钥令牌的问题。但我的问题是,当代码在VisualStudio中运行时,它如何知道它需要version1.2中的log4net?有人能帮忙吗?谢谢。

您的项目中有一个程序集,即具有此版本的log4net程序集;它可以是直接引用,也可以是间接引用(您的项目引用了引用log4net.dll的.dll)

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

包含引用时,命名强度将取决于您选择的设置:

<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 --> 


有关公钥令牌存储的更多信息,请访问

任何人都可以提供帮助?谢谢您的回复。但是.dll如何知道它需要这个特定版本的log4net呢?我假设某些版本绑定信息必须存储在某个地方。我错过什么了吗?