3

当我尝试构建我的 asp.net 应用程序时出现构建错误。错误是:

'MediCare.Framework.Authentication.IUserAuthenticate' 类型在未引用的程序集中定义。您必须添加对程序集“MediCare.Framework, Version=1.0.1.95, Culture=neutral, PublicKeyToken=1999fa3c42b9”的引用。

我可以在引用文件夹中的库中看到该类。我该如何调试这个问题?
我的意图是将引用文件夹指向库源代码的 bin 目录(因为 pdb 文件是在那里涂上的,并且对库的任何更新都将反映在应用程序中)。但是,当我将引用文件夹指向源代码的 bin 目录时,我收到上面的错误消息。

更新该应用程序最初是在 VS 2008 中开发的,我正在 2010 年对其进行修改。如果我使用的是 VS 2010(2.0 框架位置或 4.0 框架位置),我想我对 GAC 程序集的位置感到困惑?.NET 4.0 有一个新的 GAC,为什么?

更新 (06-26-2012)
GAC 中的文件 ("C:\Windows\assembly\") 已被删除。但是这个错误仍在发生。

4

2 回答 2

6

这可能是由于版本不一致造成的。意思是,为了解决这个问题,我将对您的程序集(以及可能嵌套在程序集中的程序集)进行完整的干净构建。刚出去,对所有组件进行新的构建。那应该行得通。

于 2012-06-27T05:06:38.710 回答
2

进入 Windows 资源管理器,右键单击项目正在使用的包含此类的 DLL 文件,然后查看版本选项卡。确保版本号与您在错误消息中看到的一致。我的猜测是它不会。

如果确实匹配,则检查 GAC 并确保那里没有可能获取的不同版本的 DLL。为此,请转到 Windows 资源管理器,然后导航到 c:\windows\assembly。查看该程序集是否具有不同的版本号。如果是,您可能需要将其从 GAC 中删除(但请小心,因为其他应用程序可能依赖于它的存在)。

于 2012-06-14T15:14:23.193 回答