我的 C# WinForms 解决方案有两个项目。 一个 DLL,这是我正在处理的主要项目,还有一个我称之为“沙盒”的可执行 WinForms,这样我就可以轻松地一次性编译/运行/调试 DLL。
我在 .Net 4.0 中为这两个项目工作。
在我添加一些看似无害的代码并在 DLL 中引用 System.Web 之前,一切都运行良好。 现在我的 Sandbox 项目看不到 DLL 项目的命名空间。我没有改变任何我认为应该影响它的东西。
如果我从 Sandbox 引用中删除对 DLL 的项目引用并重新添加它,那么红色下划线将全部消失并且我的所有类等的颜色编码都会恢复;但是当我尝试构建解决方案时,整个事情又分崩离析了。
当我在 Sandbox 的引用中右键单击 DLL 项目并在对象浏览器中查看时,我可以看到 namespace 和其中的所有内容。
我觉得这可能是某种错误?
这是某种 VS2010 错误吗?几个月前我遇到了同样的问题,当时我只能通过制作一个全新的项目并重新导入我的文件来解决它。然而,这一次,我有大量文件,只有在万不得已的情况下才会这样做!
编辑: 在 panic 地完成并撤消所有更改后,试图找出导致问题的原因,似乎是这一行:
string url = "http://maps.google.com?q=" + HttpUtility.UrlEncode(address);
如果我注释掉这一行,那么我就不会收到命名空间错误并且项目构建正常。不过,我看不出这条线有什么问题。
最佳答案
我准备宣布这是 VS2010 中的错误,这已经困扰了太多程序员。修复很简单:Project + Properties,Application 选项卡,将 Target Framework 更改为“.NET Framework 4”,而不是默认选择的 Client Profile。
System.Web 不包含在客户端配置文件中。首先拥有这个选项是相当愚蠢的,客户端配置文件只比 .NET 4.0 的完整版本小 15%。默认选择它甚至更愚蠢。但我离题了。
更新:幸运的是,这一切都在 VS2012 中得到了修复。这不再使客户端配置文件成为新项目的默认配置文件。客户端配置文件在 .NET 4.5 中完全停用了,真好。
关于c# - Visual Studio 2010 突然看不到命名空间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17980141/