Visual Studio 2010突然看不到命名空间?

我的C#WinForms解决scheme有两个项目。 一个DLL是我正在开发的主要项目,一个可执行的WinForms我称之为“Sandbox”,这样我就可以一口气编译/运行/debuggingDLL。

我在两个项目的.NET 4.0工作。

一切工作正常,直到我添加了一些看似无辜的代码,并在DLL中对System.Web的引用。 现在我的沙盒项目无法看到DLL项目的名称空间。 我没有改变任何我认为会影响到的东西。

如果我从Sandbox引用中删除了对DLL的项目引用并重新添加它,那么红色下划线全部消失,并且所有类的颜色编码都会返回; 但是一旦我试图build立解决scheme,整个事情就会再次崩溃。

当我在Sandbox的引用中右键单击DLL项目并在对象浏览器中查看时,我可以看到名称空间和所有内容。

我有一种感觉,这可能是某种错误?

这是一些VS2010的错误? 几个月前我也遇到了同样的问题,我只能通过制作一个全新的项目并重新导入我的文件来解决这个问题。 但这一次,我有一个bajillion文件,只会作为最后的手段!

编辑:惊慌失措地经历和取消我所有的变化,试图找出是什么原因造成的问题,似乎是这样一行:

string url = "http://maps.google.com?q=" + HttpUtility.UrlEncode(address); 

如果我注释掉这一行,那么我不会收到命名空间错误,项目也可以正常生成。 虽然我看不出这条线有什么问题。

我已经准备好在VS2010中声明这个bug了,这已经让很多程序员感到困惑了。 修复很简单:Project + Properties,Application选项卡,将Target Framework更改为“.NET Framework 4”,而不是默认select的客户端configuration文件。

System.Web不包含在客户端configuration文件中。 首先有这个选项是相当愚蠢的,客户端configuration文件只比.NET 4.0的完整版本小15%。 它被默认选中,甚至更傻。 但是我离题了。

更新:mercifully这一切都得到了修正VS2012。 这不再使客户端configuration文件成为新项目的默认设置。 客户端configuration文件在.NET 4.5中完全退役,很好的解决。

检查以确保两个项目都使用非客户端configuration文件作为其目标框架(转到每个项目的属性来执行此操作)。

一种可能性是类库的目标.NET Framework版本高于项目的版本。 我面临这个问题,通过closures视觉工作室,重新开放视觉工作室,清理和重build解决scheme,我解决了这个问题。 这对我有效。 在其他一些post上,我已经阅读了答复,大多数用户通过这种方式解决了这个问题。

尝试build立与沙盒DLL第一个独立的项目。

然后将您的可执行项目指向所需的dll,并确保copy local设置为true 。 在参考设置。

然后构build可执行项目。

将目标框架从“.NET Framweork 4客户端configuration文件”更改为“.NET Framework 4”为我工作与类似的问题。 我同意客户档案似乎没有太多的优势,使用它。 我似乎find了奇怪的错误,我追捕,直到我记得Visual Studio默认为客户端configuration文件。 我想这个故事的道德错误是:如果“重build解决scheme”不起作用,请检查目标框架…

如果您已经尝试过更改框架,但仍然无法正常工作,我希望这适用于您(就像我这样做):只需在您的项目中添加必要的参考。 非常明显,但我做错了,直到我find了什么问题。

我刚刚遇到了这个问题,事实certificate,我有多个具有相同对象名称的命名空间(即业务对象与mvc模型名称相同)。

完全合格的名字为我解决了这个问题。