这是我遇到过的最奇怪的错误。
这个 MVC Web 项目直到今天都运行良好。几周以来还没有任何人对其进行处理。
尽管没有任何改变,但现在简单地运行它会导致:
命名空间“CMSModels.ViewModels”中不存在类型或命名空间名称“ColourboxViewModel”
(x5)
命名空间“CMSModels”中不存在类型或命名空间名称“Colourbox”(是否缺少程序集引用?)
(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> {
Intellisense 正在获取 CMSModels.ColourBox 和 CMSModels.ViewModels.ColourboxViewModel 的位置。
我完全被难住了。非常感谢任何帮助,因为我完全不知所措。
好的,我找到了问题 - 但没有找到解决方案。
该类定义为
public class ColourBoxViewModel
但生成的代码正在寻找“ColourboxViewModel”类。注意小写的 B。自动生成代码从哪里获取类的名称?在项目中搜索显示没有提及带有小写 b 的内容。
ColourBox 类的问题是相同的。
问题解决了 - @František Žiačik 你是对的。有一个文件夹已从项目中排除(这就是为什么在整个项目和 Visual Studio 中的视图中进行搜索没有找到任何内容),其中包含错误键入的继承语句。最初由外包商创建时,排除的文件夹称为 ColorBox。团队中的另一位开发人员已将其复制并重命名为 ColourBox,他决定(我引用一下)“正确拼写所有内容”。该开发人员现在只允许使用 Speak n' Spell 进行编码。