当我尝试构建我的asp.net应用程序时出现构建错误。错误是:
类型'MediCare.Framework.Authentication.IUserAuthenticate'在未引用的程序集中定义。您必须添加对程序集'MediCare.Framework,Version = 1.0.1.95,Culture = neutral,PublicKeyToken = 1999fa3c42b9'的引用。
我可以在库中看到引用文件夹中的类。如何调试此问题?
我的目的是将references文件夹指向库源代码的bin目录(因为pdb文件在那里被lcoated,并且对库的任何更新都将反映在应用程序中)。但是,当我将references文件夹指向源代码的bin目录时,我收到上面的错误消息。
更新该应用程序最初是在VS 2008中开发的,我在2010年对其进行了修改。如果我使用VS 2010(2.0框架位置),我认为我对GAC程序集的位置感到困惑。或4.0框架位置)? .NET 4.0 has a new GAC, why?
更新(06-26-2012)
GAC中的文件(“C:\ Windows \ assembly \”)已被删除。但是这个错误仍然存在。
答案 0 :(得分:6)
这可能是由版本不一致引起的。意思是,为了解决这个问题,我会对程序集进行完整的清理构建(以及可能嵌套在程序集中的程序集)。冷静下来,对所有组件进行新的构建。这应该工作。
答案 1 :(得分:2)
进入Windows资源管理器,右键单击项目正在使用的包含此类的DLL文件,然后查看版本选项卡。确保版本号与错误消息中显示的版本号相匹配。我的猜测是它不会。
如果匹配,则检查GAC并确保其中没有可用的DLL的不同版本。为此,请转到Windows资源管理器,然后导航到c:\ windows \ assembly。查看该程序集是否包含不同的版本号。如果是,您可能需要将其从GAC中删除(请谨慎使用,因为其他应用程序可能依赖于它)。