【问题标题】:"Base class could not be loaded" - for no clear reason“无法加载基类” - 没有明确的原因
【发布时间】:2012-10-22 11:44:05
【问题描述】:

我正在使用 Visual C# 2008 Express。这是我多年来第一次遇到这个错误,最后一次是在我开始编程的时候。

我不知道它的实际含义或为什么突然出现,对于错误消息所说的内容似乎相当模棱两可。我所知道的是,在我的整个应用程序中,我从我想出的 ThemedWindow 类中继承了许多主窗口,以赋予它们自定义外观,该代码中没有错误,并且一切都在 20 分钟前工作 100% 完美。

完整的错误:

警告 12 无法为此文件显示设计器,因为其中没有任何类可以设计。设计者检查了文件中的以下类:

InheritingWindow --- 无法加载基类“ThemedWindow”。确保已引用程序集并且已构建所有项目。 0 0

对于从 ThemedWindow 继承的每个表单,我都会遇到这种情况,以及其他几个错误,因为项目构建的距离不足以让其他所有工作都正常工作。

就在这发生之前,我更新了所有表单和子控件上的字体,项目甚至在我这样做之后构建并运行,然后这完全没有明确的原因发生。

我已经尝试了经典的重建它,删除构建文件,重新打开 Visual Studio 等,但目前似乎没有任何效果。

有谁知道如何解决这个问题?

【问题讨论】:

标签: c# compiler-errors windows-forms-designer visual-studio-express


【解决方案1】:
【解决方案2】:

这些问题是由 Visual Studio 中的一个不幸的错误引起的。我在某些代码中出现了其他错误(不是警告),尽管没有其他任何直接依赖于它,这在整个情况中发挥了作用。

我的解释可能是错误的,但我认为出了问题:由于某种原因(错误),它完全忘记了之前已经编译过的未更改对象,给了我代码中的实际错误,以及一堆其他警告,因为它不会超过那个点。我无法进入依赖于ThemedWindow 的表单的设计器,因为我猜ThemedWindow 在这些错误发生之前没有重新编译。

一旦我将错误代码注释掉作为快速修复并重新构建解决方案,一切编译成功。

【讨论】:

  • 对我来说,关闭 Visual Studio 是可行的,在管理员模式下再次打开它并再次重建解决方案,它就可以工作了。
  • 你说这些问题是由...引起的,用过去时说好像这不再是问题一样。这是最新版本的 VS 中目前存在的问题。
  • @AlinCiocan Restarting Visual Studio 为我解决了这个问题。谢谢。
【解决方案3】:

在我的情况下(VS 2015 Pro)以上都没有帮助。只有在将目标框架更改为不同的框架(特别是更新,从 4.5.1 到 4.5.2)并重新编译后,表单编辑器才会加载表单。

在更改目标框架之前,我尝试清理解决方案,删除和添加引用(基本用户控件在不同的 dll 中),清理项目后手动删除所有 bin 和 obj 文件夹,重新启动 VS,均无济于事。 ..

【讨论】:

    【解决方案4】:

    我也有这个问题,VS 2019 版本 16.11.2,所以我猜这个 bug 永远不会被修复。

    我的解决方法是,因为我的 BaseForm 类在运行时通过代码完成所有工作并且没有会影响设计器的功能,所以当我需要使用设计器时,我只是暂时更改窗口的基类。也就是改变——

    partial class MainWindow : BaseForm {
    

    partial class MainWindow : Form {
    

    然后进行设计工作,一旦设计器关闭,将 BaseForm 放回去。

    如果您的基本表单类也不做任何会对设计器产生影响的事情,这可能对您有用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多