VisualStudio2010突然看不到名称空间了?

我的 C # WinForms 解决方案有两个项目。 一个 DLL,这是我正在工作的主要项目,和一个可执行的 WinForms 我称为“沙箱”,这样我就可以编译/运行/调试的 DLL 容易一去。

两个项目我都在.Net 4.0上工作。

一切正常,直到我添加了一些看似无关紧要的代码,以及 DLL 中对 System.Web 的引用。 现在,我的 Sandbox 项目无法看到 DLL 项目的命名空间。我没有改变任何我认为会影响到这个的东西。

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

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

我有种感觉,这可能是某种窃听器?

这是某种 VS2010漏洞吗?几个月前我也遇到过同样的问题,当时我只能通过制作一个全新的项目并重新导入我的文件来解决这个问题。然而,这一次,我有大量的文件,只有在万不得已的情况下才会这样做!

编辑: 在惊慌失措地检查并撤销我所有的修改之后,试图找出问题的原因,似乎是这句话:

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

如果我注释掉这一行,那么就不会出现名称空间错误,并且项目构建良好。不过我看不出这条线有什么问题。

40266 次浏览

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

首先尝试仅使用 Sandboxdll 独立地构建项目。

然后将可执行项目指向所需的 dll,并确保在引用设置中将 copy local设置为 true

然后生成可执行项目。

我已经准备好在 VS2010中声明这是一个 bug,这已经让太多的程序员感到头疼了。修复很简单: Project + Properties,Application 选项卡,将 Target Framework 更改为“ .NET Framework 4”,而不是默认选择的 Client Profile。

系统。Web 不包含在客户端配置文件中。首先,有这个选项是相当愚蠢的,客户端配置文件只有15% 小于完整版本的。NET 4.0.默认选择它更加愚蠢。但我跑题了。

更新: 幸运的是,这一切都在 VS2012中得到了修复。它不再使客户端配置文件成为新项目的默认配置文件。客户资料完全退休了。NET 4.5,终于摆脱了。

将目标框架从“ .NET Framework 4 Client Profile”更改为“ .NET Framework 4”对我来说也有类似的问题。我同意使用客户档案似乎没有太大的优势。我似乎总是会遇到一些奇怪的错误,直到我想起 Visual Studio 默认为客户端配置文件。我想当出现错误时,这个故事的寓意是: 如果“重建解决方案”不起作用,请检查 Target 框架..。

如果您已经尝试过对 Framework 进行更改,但仍然无效,我希望这对您有用(就像对我一样) : 只需在您的项目中添加必要的参考。很明显,但我做错了,直到我发现问题所在。

我只是遇到了这个问题,结果是我使用了多个名称空间,它们具有相同的对象名(即业务对象与 mvc 模型具有相同的名称) ;

完全限定的名称为我修复了问题。

一种可能性是类库的目标.NETFramework 版本高于项目版本。 我面对这个问题,我解决了它通过关闭视觉工作室,重新开放视觉工作室,清洁和重建的解决方案。这招对我很管用。在其他一些帖子中,我已经阅读了回复,大多数用户通过以下方式解决了这个问题。