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

Posted

技术标签:

【中文标题】Visual Studio 2010 突然看不到命名空间?【英文标题】:Visual Studio 2010 suddenly can't see namespace? 【发布时间】:2011-06-20 07:45:01 【问题描述】:

我的 C# WinForms 解决方案有两个项目。 一个 DLL 是我正在处理的主要项目,以及一个我称之为“沙盒”的可执行 WinForms,这样我就可以一次轻松地编译/运行/调试 DLL。

我正在为这两个项目使用 .Net 4.0。

在我添加了一些看似无害的代码以及在 DLL 中对 System.Web 的引用之前,一切都运行良好。 现在我的 Sandbox 项目看不到 DLL 项目的命名空间。我没有改变任何我认为应该影响这一点的东西。

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

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

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

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

编辑: 在惊慌失措地完成并撤消所有更改后,试图找出导致问题的原因,似乎是这一行:

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

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

【问题讨论】:

【参考方案1】:

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

【讨论】:

谢谢马克。你和汉斯把它钉在头上,这样就修好了。【参考方案2】:

首先尝试仅使用 Sandbox dll 独立构建项目。

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

然后构建可执行项目。

【讨论】:

出于对所有神圣事物的热爱,请确保将目标类型设置为编译而不是内容(出于某种原因,我是这样的)【参考方案3】:

我已经准备好在 VS2010 中声明这是一个错误,这已经让太多的程序员陷入了困境。修复很简单:项目 + 属性,应用程序选项卡,将目标框架更改为“.NET Framework 4”,而不是默认选择的客户端配置文件。

System.Web 不包含在客户端配置文件中。一开始就有这个选项是很愚蠢的,客户端配置文件只比 .NET 4.0 的完整版本小 15%。默认选择它甚至更愚蠢。但我离题了。

更新:幸运的是,这一切都在 VS2012 中得到了修复。这不再使客户端配置文件成为新项目的默认配置。并且客户端配置文件在 .NET 4.5 中完全退出,很好摆脱。

【讨论】:

谢谢。我的 DLL 设置为 .Net 4.0,但沙盒设置为 .Net 4.0 客户端配置文件。在这个项目上工作了 5 个月后,当整个事情似乎无缘无故地分崩离析时,我的恐慌程度……至少下次我会知道! 这样的回答才是本站真正的卖点。我对人性的信念略有增加,我的项目终于编译完成。谢谢。 我已将所有项目中的 Target Framework 更改为 4.0,但是仍然找不到依赖项目的命名空间。还有什么我应该确认的吗? @UwConcept - 这与版本号无关。这是关于完整与客户资料的关系。如果这没有帮助,请提出您自己的问题。 @HansPassant 是的,如果我的问题令人困惑,我很抱歉。我使用的是 4.0 客户端版本,并将其更改为 4.0。尽管如此,我的解决方案中其他项目中的命名空间还是无法跨项目找到。【参考方案4】:

将目标框架从“.NET Framweork 4 Client Profile”更改为“.NET Framework 4”对我来说也有类似的问题。我同意客户端配置文件似乎没有太多使用它的优势。我似乎被我寻找的奇怪错误所困扰,直到我记得 Visual Studio 默认为客户端配置文件。我猜这个故事的寓意是:如果“重建解决方案”不起作用,请检查目标框架...

【讨论】:

【参考方案5】:

如果您已经尝试进行框架更改,但仍然没有成功,我希望这对您有用(就像对我一样):只需从您的项目中添加必要的引用即可。很明显,但我做错了,直到我发现问题所在。

【讨论】:

【参考方案6】:

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

完全限定名称为我解决了这个问题。

【讨论】:

【参考方案7】:

一种可能是类库的目标 .NET Framework 版本高于项目的版本。 我遇到了这个问题,我通过关闭视觉工作室、重新打开视觉工作室、清理和重建解决方案来解决它。这对我有用。在其他一些帖子上,我已经阅读了回复,并且大多数用户都通过这种方式解决了问题。

【讨论】:

这个问题在四年半前就已经得到了满意的回答。 + 用于添加有关密切相关的错误的有用信息 @Ozzah 作为 2017 年调查此错误的人,我非常高兴能获得更多信息。 +1

以上是关于Visual Studio 2010 突然看不到命名空间?的主要内容,如果未能解决你的问题,请参考以下文章

用visual studio 2010编写C++突然输入中的很多错误不提示了

如何使用 Visual Studio 数据库项目重命名列?

Visual Studio 2010 版本找不到 dll

visual studio 2010怎么用

在 Visual Studio C++ 2010 中找不到或打开 PDB 文件

在 Visual Studio C++ 2010 中找不到或打开 PDB 文件