【发布时间】:2010-06-08 13:06:45
【问题描述】:
我正在 VS2010 中开发一个 C# 4.0 项目,并且需要使用一些较旧的 DLL,这些 DLL 包含在 VS2008 上的 C# 3.5 中创建的控件。当我第一次将 DLL 添加到引用时,我能够通过智能感知查看命名空间并创建其中一个控件的实例,但是当我开始构建时,它给了我以下错误:
The type or namespace name 'BCA' could not be found (are you missing a using directive or an assembly reference?)
而且我确实已经有一个用于该命名空间的 using 指令,现在用红色下划线表示,VS 找不到它。而现在,智能感知根本不会使用该命名空间。
我什至尝试将控件添加到工具箱中(效果很好),但是当我将它们拖到 GUI 时,它说它无法找到 DLL 引用,即使它显然知道它在哪里。
我什至尝试将目标框架更改为 3.5,但结果仍然相同。
对于为什么会发生这种情况有什么想法吗?
编辑 - 我注意到,在 VS 输出的 csc.exe 参数中,它没有我尝试使用的 DLL 的任何 /reference 条目。当我在 VS2008 中创建相同的基本项目时,这些条目存在。另外,我在VS2010的一个DLL项目中可以成功引用DLLs...看来只是WinForms项目不起作用。
【问题讨论】:
-
这可能是一个显而易见的问题,但这些 DLL 文件是否仍与您最初引用它们时一样位于磁盘(或 GAC)上的相同位置?
-
另一个可能显而易见的问题 - 程序集中的这种类型是否已更新?在这种情况下,可能 .refresh 文件仍指向过时的 .DLL。
-
是的,他们肯定没有搬家。并且没有任何更新。
-
这可能是 64 位与 32 位的问题。我现在也遇到了同样的问题,所以我自己还在努力解决
-
可疑...我只运行 32 位 Windows XP(我知道,我知道...该死的公司政策)
标签: c# dll visual-studio-2010 c#-4.0