相关疑难解决方法(0)

.Net采摘错误引用的汇编版本

我刚刚将一个现有的项目复制到一台全新的机器上,开始对它进行开发,并且遇到了我引用的程序集之一的版本问题(发生了一个telerik DLL).

该项目最初引用了旧版本的程序集(我们称之为v1.0.0.0).我的新机器安装了最新版本的程序集,所以我想我已经更新了它(让我们调用新版本的v2.0.0.0).

现在问题是:如果我将旧的v1.0.0.0 dll复制到项目文件夹并将其添加为参考,则网站启动时没有问题.如果我删除该引用(并且还从我的系统中删除旧DLL)并添加新版本(v2.0.0.0),该页面将显示以下异常:

无法加载文件或程序集"XXXXXX,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = 121fae78165ba3d4"或其中一个依赖项.定位的程序集的清单定义与程序集引用不匹配.(HRESULT异常:0x80131040)

显然,代码正在寻找过时的版本而无法找到它.但为什么?

我为该版本号编制了解决方案文件夹,但找不到一个引用.我仔细检查.csproj文件的文本,发现版本正确显示最新版本,HintPath正确显示新DLL的路径.此外,因为我没有在系统上安装旧的DLL,它不会出现在我的GAC中(尽管v2.0.0.0正如预期的那样).

然后,我启用了融合日志查看器,试图找出它为什么要查找旧版本,但没有运气:

Assembly Load Trace: The following information can be helpful to determine why the assembly 'XXXXXX, Version=1.0.0.0, Culture=neutral, PublicKeyToken=121fae78165ba3d4' could not be loaded.


=== Pre-bind state information ===
LOG: User = MyComp\me
LOG: DisplayName = XXXXXX, Version=1.0.0.0, Culture=neutral, PublicKeyToken=121fae78165ba3d4
 (Fully-specified)
LOG: Appbase = file:///d:/My Documents/Visual Studio 2010/Projects/CoolProj/WebApp/
LOG: Initial PrivatePath = d:\My Documents\Visual Studio 2010\Projects\CoolProj\WebApp\bin
Calling assembly : WebApp, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null.
===
LOG: This bind …
Run Code Online (Sandbox Code Playgroud)

asp.net dll

136
推荐指数
5
解决办法
18万
查看次数

标签 统计

asp.net ×1

dll ×1