找不到引用的DLL因为VS命名空间错误

时间:2011-04-14 11:28:08

标签: .net visual-studio visual-studio-2010 namespaces assemblies

我有一个包含常见类型和例程的DLL。程序集名称和命名空间是相同的:

MyCompany.Tools.Common

我添加了对此DLL的引用,然后我将一个using语句添加到希望使用程序集中的类型的文件中:

using MyCompany.Tools.Common;

然后我使用另一个程序集中的一个类型:

SafeInvoker.Invoke(this.pctBoxCLIP, delegate { this.pctBoxCLIP.Visible = value; });

到目前为止一切都很好,但是当我现在尝试构建程序集时,Visual Studio抱怨说:

  

“类型或命名空间名称   “普通”中不存在   命名空间   '的 MyCompany.Tools

但是,如果我查看对象浏览器,我可以看到命名空间MyCompany.Tools.Common&所有类型等。

如果我删除对DLL的引用并再次添加它,则会删除错误,直到我再次尝试构建。

知道这里发生了什么,以及如何解决它?

2 个答案:

答案 0 :(得分:1)

刚刚解决了完全相同的问题。我有一个使用.NET Framework 4 Client Profile编译的解决方案,另一个使用.NET Framework 4(完整版)编译。

将两者都更改为完整框架后,它开始起作用。

答案 1 :(得分:0)

听起来每次构建你的dll都会被替换掉。我昨天在VS2010中遇到过这种情况。我删除了引用,从bin中删除了库,后面添加了它仍然正在发生。我所做的是删除了引用,从bin文件夹中删除了dll,将最新版本的dll复制到一个新目录(与之前引用的位置不同),并从新目录中引用它。之后似乎工作了。至于为什么会发生,没有任何线索。