找不到类型'xxx.xxx.xxx'.请确保装配

And*_*nes 39 .net vb.net visual-studio-designer visual-studio-2012

当我尝试打开一个在不同项目中引用UserControl的表单时,我搜索了StackOverflow并发现了类似的问题.

我得到"为了防止在加载设计器之前可能丢失数据,必须解决以下错误:"与以下两个错误相关的消息:


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

和


变量'InformationBox1'未声明或从未分配过.

InformationBox1是设计器中表单上的用户控件InformationBox的一个实例 - 它只是被引用为;

Friend WithEvents InformationBox1 As MyNamespace.CommonUi.InformationBox

"MyNamespace.CommonUi"项目成功构建.

我在项目中得到智能感知,所以我有理由相信它被正确引用了.

到目前为止,和其他人一样:

这个项目已经从VS2005中的.NET2/x86迁移到VS2012中的.NET4/x64.

现在,当解决方案在64位下运行时,它不起作用,我得到了这个设计器错误.但是,如果我将其切换到32位(技术上是AnyCPU),我可以打开设计师就好了.

我已经阅读了类似线程中的其他建议,但他们没有看到提供任何解决方案(我甚至已经走了"左移和右移以使其重建"选项)

rbo*_*boy 57

我相信问题是Visual Studio本身是32位,并且不能对64位的某些组件(例如ListView)进行GUI编辑.例如,在具有ListView的表单上,您需要将解决方案更改为32位以编辑GUI.

所以答案就是,当你遇到这个问题时:

  1. 将解决方案更改为32位
  2. 清理并重建解决方案
  3. 打开GUI进行编辑
  4. 保存,将解决方案更改回64位
  5. 清洁和重建
  6. 以64位运行

有关详细信息,请参阅此问题.

VS 2010设计器错误'在Windows7中找不到类型XYZ'.在XP中运行良好

  • 这太丑了.如果你只有64位(例如用C++/CLI实现的自定义控件)怎么办? (5认同)
  • lesigh,接受我的upvote,但这感觉很糟糕/愚蠢(虽然它工作) (4认同)
  • 这是我的问题。他们应该真正修复错误消息,使其显示“确保平台为x86或任何CPU用于设计时编辑” (2认同)

Ant*_*rin 13

我有这个问题.它只发生在一个表单设计器视图中,尽管它能够在运行时编译,启动,显示此表单并在设计器模式下显示其他表单/控件.

这些步骤没有帮助:

  • 清洁和重建
  • 重启工作室
  • 删除所有bin和obj目录
  • 删除和添加引用
  • 否认,愤怒,讨价还价,沮丧,接受

解决我的案子:

  1. 重命名缺少的类型(例如InformationBox => InformationBox2)
  2. 刷新设计师(哇,它的作品!)
  3. 将类型重命名为其初始名称


小智 8

将任何CPU更改为X86.你的控制是32位试图在64位机器上运行,但无法找到64位版本的控件.


Tae*_*ost 5

我最近在 Visual Studio 2013 中使用 VB.Net 使用自定义 WinForm 用户控件时遇到了同样的错误,该控件本身继承了同一项目中的自定义用户控件基类,并采取了一些措施来找出真正的原因是什么,就我而言,基类和子类都没有无参数构造函数(因为在这种情况下这不是有效的场景)。
为了修复这个问题,我添加了缺少的构造函数,但将其保留为空(抛出 NotImplementedException 导致了另一个阻止其显示的问题)。它不漂亮,但很有效。

为了通过此线程问题中列出的错误查看潜在错误,我必须执行以下操作:

  1. 清洁整个溶液
  2. 关闭 Visual Studio
  3. 重新打开 Visual Studio
  4. 重新打开解决方案
  5. 通过在解决方案资源管理器中右键单击解决方案来构建解决方案(不是重建,这不起作用)
  6. 在设计器模式下查看用户控件,现在显示实际错误

添加构造函数后,我必须再次执行上述步骤才能使其正常工作。