C#Winforms Designer无法打开,因为它无法在同一个程序集中找到类型

Jon*_*ter 10 c# custom-controls windows-forms-designer winforms

我收到以下错误

找不到类型'My.Special.UserControl'.请确保引用包含此类型的程序集.如果此类型是开发项目的一部分,请确保使用当前平台或任何CPU的设置成功构建项目.

但是没有任何意义的是,My.Special.UserControl它与表单在同一个程序集中.更重要的是,如果我在Designer.cs文件上查看代码,那么对它的引用My.Special.UserControl似乎没问题.组件构建良好,运行良好.这是设计师遇到的问题.

因此,我们必须通过手动调整Designer.cs文件来完成所有设计工作.如何让设计师再次工作?

小智 8

以下程序对我有用:

  1. 删除源代码目录中的 /bin 和 /obj 文件夹。
  2. 重新启动 VS(确保有问题的表单设计器已关闭)
  3. 编译
  4. 再次在设计器中打开表单。问题应该得到解决。

我确定删除 /bin 和 /obj 不是必需的,但我无法重现错误并找到更具体的解决方案。(我的项目通常足够小,重新编译整个项目没什么大不了的。)

通常,此错误似乎发生在重构/重命名违规类的对象之后。所以我的猜测是存在一个 VS 错误,在重构用户控件或自定义控件后不会重新编译相应的对象文件。


小智 5

暂时将项目类型更改为 x86,编译并打开 Designer。Visual Studio 是一个 32 位应用程序。

  • Visual Studio 2022(现在是 64 位进程)也发生了同样的情况:将项目配置暂时更改为 x64,编译并重新打开设计器。 (2认同)

Th *_*Ä s 3

表单/用户控件的加载或初始化部分可能发生异常。您可以尝试注释掉那里的任何代码并重试在设计器中打开吗?

您可以使用 Visual Studio 的另一个实例将调试器附加到您的 Visual Studio 实例,不允许您打开窗体。一旦发生异常,您将能够查明出现问题的位置。