我得到一个:

找不到类型或名称空间名称

错误的c# WPF应用程序在VS2010。这部分代码编译得很好,但突然就出现了这个错误。我已经尝试删除项目引用和using语句,关闭VS2010并重新启动,但我仍然有这个问题。

有什么想法,为什么这可能会发生,似乎我在做正确的事情re Reference & using语句?

我还注意到在VS2010,智能感知的名称空间是工作的好,所以它似乎VS2010有项目引用,是看到名称空间在一方面,但在编译期间没有看到它?


当前回答

好吧,多年后使用VS 2017 . net Core 2.2 Razor Pages,我觉得这个答案可能会帮助到一些人。 如果是蛇,它会咬我的。 我到处乱扔东西,更改名称,重命名模型,突然我得到了这个错误:

错误CS0246类型或命名空间名称不能为“UploadFileModel” 找到(是否缺少using指令或程序集引用?)

这在我的。chstml Razor Page中用红色划线。(修正后未加下划线):

@page
@model UploadFileModel

所以,最后,幸运的是,我从其他人那里找到了我最初使用的代码,注意,名称空间不包括.cshtml文件名!!

这是我的坏假错误在命名空间的页面名称打我自己:

namespace OESAC.Pages.UploadFile
{
    public class UploadFileModel : PageModel
    {

我的原始代码所拥有的,我所要做的就是从命名空间UploadFile中删除页面名称:

namespace OESAC.Pages
{
    public class UploadFileModel : PageModel
    {

瞧,所有的错误都消失了!! 愚蠢的我。但是你知道,微软让。net c# MVC的东西让我们这些非计算机科学家非常困惑。我经常被鞋带绊倒,试图找出模型名称、页面名称和使用它们的语法。不应该这么难。哦。我希望错误和解决方案能帮助别人。错误是正确的,没有命名空间名为“UploadFileModel”哈哈。

其他回答

我遇到了同样的问题:VS 2017强调引用项目中的一个类为错误,但解决方案构建正常,甚至智能感知工作。

下面是我解决这个问题的方法:

卸载引用的项目 在VS中打开。proj文件(我正在寻找重复的人建议在这里) 重新加载项目(我没有改变甚至保存proj文件,因为我没有任何副本)

这可能是两个项目之间的. net框架版本不兼容的结果。

它可以通过两种方式发生:

客户档案项目引用了一个完整的框架项目;或 一个针对新框架版本的旧框架版本

例如,当一个应用程序被设置为目标。net 4客户端配置文件框架时,它会发生,而它引用的项目目标是完整的。net 4框架。

更清楚地说:

项目A的目标是客户概要文件框架 项目A引用项目B 项目B的目标是完整的框架

这种情况下的解决方案是要么升级应用程序的框架目标(项目A),要么降级引用程序集的目标(项目B)。完整框架应用程序引用/使用客户端概要文件框架程序集是可以的,但反过来就不行(客户端概要文件不能引用完整框架目标程序集)。

注意,当你在VS2012或VS2013(使用.Net 4.5作为默认框架)中创建一个新项目时,你也会得到这个错误:

引用项目使用。net 4.0(当你从VS2010迁移到VS2012或VS2013,然后添加一个新项目时,这很常见) 引用的项目使用更大的版本,即4.5.1或4.5.3(你已经将现有项目重新定位到最新版本,但VS仍然创建了针对v4.5的新项目,然后你从新项目中引用这些旧项目)

在我的例子中,我有一个在适当的源文件夹中列出的类,但没有在解决方案资源管理器中注册。我必须右键单击项目>添加现有项目,手动选择它说它缺少的类。然后一切都运转正常!

有同样的错误,我的故事如下: 在糟糕的合并(通过git)后,我的一个.csproj文件有重复的编译条目,如:

<Compile Include="Clients\Tree.cs" />
<Compile Include="Clients\Car.cs" />
<Compile Include="Clients\Tree.cs" />        //it's a duplicate

如果您有一个大的解决方案,并且错误窗口中有超过300条消息,那么很难检测到这个问题。 所以我已经通过记事本打开了损坏的.csproj文件,并删除了重复的条目。对我来说很管用。

在我的例子中,我发现VisualStudio中的引用有一个三角形和一个感叹号,就像这个图像,

然后,我右键单击删除它,并正确地添加dll引用,问题就解决了。