我已经调查了一段时间了,还没有解决这个问题。我得到以下错误消息:
Compiler Error Message: CS1705: Assembly 'My.Model, Version=1.1.4422.23773, Culture=neutral,
PublicKeyToken=bfde95ba233094b2' uses
'Common, Version=3.3.4273.24368, Culture=neutral, PublicKeyToken=bfde95ba233094b2'
which has a higher version than referenced assembly
'Common, Version=3.3.4269.17112, Culture=neutral, PublicKeyToken=bfde95ba233094b2'
c:\WINDOWS\assembly\GAC_MSIL\Common\3.3.4269.17112__bfde95ba233094b2\Common.dll:
(Location of symbol related to previous error)
web服务器正在运行server 2003。我转到c:\windows\assembly,实际上确实注意到列出了3个版本的Common.dll。列出的最高版本为3.3.4269.17112
我将版本为3.3.4273.24368的dll复制到程序集目录中。然后,我重新编译并重新部署了我的代码(可能有些过分了,但是很好)。当我在新的会话中打开浏览器并再次访问站点URL时,我仍然收到相同的消息。
我可以使用windows资源管理器,并验证现在是否也列出了更高版本的Common.dll。
我还能做些什么来解决这个问题呢?我不想将程序集中的引用更改为指向旧版本。
发布于 2013-02-12 14:35:03
我出现这个错误是因为"Rebuild“并不是真正的Rebuild。
解决方案:关闭Visual Studio,真的去删除bin文件夹,然后重新构建,它可能会工作得更好。
此外,有时Visual Studio会在引用方面撒谎,因此请检查.csproj
文件中的HintPath
。
发布于 2013-05-22 12:31:37
我的问题是,我有两个项目引用了同一个dll的两个不同的副本,这些dll有不同的版本。我通过删除它们并确保它们引用相同的dll文件来修复它。
发布于 2013-10-10 02:10:00
一个可能的原因是,第二个程序集安装在GAC中,而第一个版本号更高的程序集被添加到项目的引用中。若要验证这一点,请双击项目引用中的程序集,并检查对象浏览器中是否有另一个同名的程序集。
如果是这种情况,请使用gacutil.exe实用程序从GAC卸载第二个程序集。例如,如果这些是64位程序集:
C:\Program Files\Microsoft SDKs\Windows\v6.0A\Bin\x64\gacutil.exe -u <assembly_name>
https://stackoverflow.com/questions/9219832
复制相似问题