2011-04-05 86 views
5

这是我遇到过的最奇怪的错误。命名空间'Y'中的类型或名称空间名称'X'不存在于VS生成的代码中

这个MVC web项目工作得很好,直到今天。几个星期以来,任何人都没有做过这方面的工作。

即使什么都没有改变,只是运行,现在导致:

The type or namespace name 'ColourboxViewModel' does not exist in the namespace 'CMSModels.ViewModels' 

(X5)

The type or namespace name 'Colourbox' does not exist in the namespace 'CMSModels' (are you missing an assembly reference?) 

(X1)

有在项目CMSModels参考。删除这个引用给了我在命名空间中每个其他类大约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> { 

智能感知拾取两者CMSModels.ColourBox和CMSModels.ViewModels.ColourboxViewModel的位置。

我完全难住了。任何帮助非常感谢,因为我完全处于亏损状态。


好的我找到了问题 - 但不是解决方案。

的类定义为

public class ColourBoxViewModel 

但所生成的代码是寻找一类“ColourboxViewModel”的。注意小写字母B.自动代码从哪里得到类的名字?在项目中搜索没有提及小写的b。

ColourBox类的问题相同。


问题解决了 - 和@FrantišekŽiačik你是对的。有一个文件夹被排除在项目之外(这就是为什么在整个项目中和Visual Studio中的视图中都没有找到),其中包含错误类型的继承声明。排除文件夹最初由外包商创建时称为ColorBox。这已被团队中的另一位开发者复制并更名为ColourBox,他们决定引用“正确拼写所有内容”。现在只允许使用Speak n'Spell进行编码。

+2

尝试重建解决方案。 – SLaks 2011-04-05 13:35:36

+0

这可能是一个ReSharper错误。我来过几次。像SLaks说的那样,尝试清理,重新构建和构建您的解决方案。如果这没有帮助,而且您正在使用TFS,则可以尝试关闭您的解决方案,并再次从soruce控制中获取最新的项目。 – cordellcp3 2011-04-05 13:41:26

+0

重建导致相同的错误。我们使用SVN进行版本控制,但是从存储库获取项目的新副本会导致同样的问题。 – 2011-04-05 14:09:16

回答

5

所以这里是我的猜测。

在你content.ascx视图(或不管它的名字命名的)你声明:中

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

代替

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

嗯...你能帮助我们这些愚蠢的人发现差异吗? – 2011-04-05 15:02:08

+0

更新:没关系,我明白了。 – 2011-04-05 15:02:29

+0

这是我的第一个想法,但我可以保证继承此类的所有页面和控件都使用ColourBoxViewModel。 – 2011-04-05 15:04:09

5

昨天我收到这个错误,我发现这些答案,但在我的情况下,他们没有帮助。 事实证明,在我的客户端项目属性中,Target框架被设置为.NET Framework 4 Client Profile。 解决方案是将其更改为完整的.NET 4。希望这可以帮助某人,因为VS中的错误并不是非常有用。

相关问题