C# 类型或命名空间名称';X';命名空间中不存在';Y';-在VS生成的代码中

C# 类型或命名空间名称';X';命名空间中不存在';Y';-在VS生成的代码中,c#,asp.net-mvc,C#,Asp.net Mvc,这是我遇到的最奇怪的错误 直到今天,这个MVC web项目仍然运行良好。已经有两周没人做了 即使没有任何变化,现在只需运行它就会产生以下结果: 命名空间“CMSModels.ViewModels”中不存在类型或命名空间名称“colorBoxViewModel” (x5) 命名空间“CMSModels”中不存在类型或命名空间名称“colorBox”(是否缺少程序集引用?) (x1) 本项目中有对CMS模型的参考。删除这个引用会给命名空间中的每个类带来大约200个额外的错误,所以我知道它可以工作,但

这是我遇到的最奇怪的错误

直到今天,这个MVC web项目仍然运行良好。已经有两周没人做了

即使没有任何变化,现在只需运行它就会产生以下结果:

命名空间“CMSModels.ViewModels”中不存在类型或命名空间名称“colorBoxViewModel”

(x5)

命名空间“CMSModels”中不存在类型或命名空间名称“colorBox”(是否缺少程序集引用?)

(x1)

本项目中有对CMS模型的参考。删除这个引用会给命名空间中的每个类带来大约200个额外的错误,所以我知道它可以工作,但对于这两个错误就不行了

这是错误指向的生成代码行:

public class views_colorbox_index_aspx : System.Web.Mvc.ViewPage<IEnumerable<CMSModels.Colourbox>>, System.Web.SessionState.IRequiresSessionState, System.Web.IHttpHandler {
...
public class views_colorbox_content_ascx : System.Web.Mvc.ViewUserControl<CMSModels.ViewModels.ColourboxViewModel> {
然而,生成的代码正在寻找一类“ColorboxViewModel”。注意小写的B。auto-gen代码从哪里获取类的名称?在project中搜索显示没有提到它,并带有小写的b

这个问题对于彩盒类也是一样的



问题解决了——而且@FrantišekŽiačik你是对的。有一个文件夹已从项目中排除(这就是为什么在整个项目中以及在visual studio中的视图中搜索时未找到任何内容),其中包含键入错误的inherit语句。被排除的文件夹最初由外包商创建时称为ColorBox。团队中的另一位开发人员复制并将其重命名为colorbox,他决定,我引用“正确拼写所有内容”。说开发人员现在只允许使用“说n”拼写进行编码。

所以我猜是这样的

content.ascx
视图(或其名称)中,您已声明:

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<CMSModels.ViewModels.ColourboxViewModel>" %>

而不是

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<CMSModels.ViewModels.ColourBoxViewModel>" %>

我昨天犯了这个错误,我找到了这些答案,但对我来说,它们没有帮助。 事实证明,在我的客户机项目属性中,目标框架被设置为.NET framework 4客户机配置文件。
解决方案是将其更改为完整的.NET4。希望这能帮助一些人,因为VS中的错误不是很有用。

这可能是一个ReSharper错误。我见过几次。正如SLaks所说,尝试清理、重新构建和构建您的解决方案。如果这没有帮助,并且您重新使用了TFS,您可以尝试关闭解决方案,并从soruce control再次获取项目的最新信息。重建导致了相同的错误。我们使用SVN进行版本控制,但是从存储库获取项目的新副本会导致相同的问题。如果您的错误中出现
colorboxviewmodel
字符,而类定义中出现
colorboxviewmodel
,那么这可能是一个输入错误吗?不幸的是,这绝对不是一个输入错误。下面是一个屏幕截图,显示生成的代码和我的类。我仍然可以在屏幕截图上看到该类是用
B
键入的,并且在ascx中与
B
一起使用。那样不行。问题是,如果它是一个生成的类,那么它的小写名称是从哪里来的。嗯……你能帮助我们中那些太笨而看不出区别的人吗?这是我的第一个想法,但我可以保证继承这个类的所有页面和控件都使用ColorboxViewModel。问题解决了——而且@FrantišekŽiačik你是正确的。有一个文件夹已从项目中排除(这就是为什么在整个项目中以及在visual studio中的视图中搜索时未找到任何内容),其中包含键入错误的inherit语句。被排除的文件夹最初由外包商创建时称为ColorBox。团队中的另一位开发人员复制并将其重命名为colorbox,他决定,我引用“正确拼写所有内容”。所说的开发人员现在只允许使用“说n”咒语进行编码。@RoryMcCrossan我送给你的礼物,感谢你读了你的评论后让我发笑:
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<CMSModels.ViewModels.ColourBoxViewModel>" %>