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

时间:2012-10-14 00:08:54

标签: c# .net visual-studio-2010 windows-7

我在VS 2010 C#.NET中遇到了问题。我在Windows XP上有一个项目,包括表单,类和一些我自己的自定义组件。这些组件是内置MS组件的简单扩展(例如DataGridViewEx作为DataGridView的扩展)。一切都在XP中运行良好。我正试图在Windows 7 / x64上将此项目移植到VS 2010。我已经有了在Windows 7上编译OK的解决方案,但是在设计模式下,当我打开包含一个自定义控件的表单时,我收到错误'找不到类型XYZ.DataGridViewEx。请确保引用包含此类型的程序集。 XYZ是我用于这些控件的命名空间,它与使用控件的表单具有相同的命名空间。所有这些都是同一个VS项目的一部分。

当我在同一个项目中打开一个不包含其中一个自定义控件的表单时,该表单在设计器中打开OK,我在工具箱的左侧看到自定义控件。但是,如果我然后尝试将其中一个控件拖到该表单中,它会弹出一个错误消息框'无法加载工具箱项'DataGridViewEx'。它将从工具箱中删除。然后它会从工具箱中删除。

在XP中的VS解决方案中,一切都运行良好。此问题仅发生在Windows 7 / x64中的VS解决方案中。

我不明白为什么它抱怨无法找到该组件,因为该组件是同一项目的一部分。这是一件有效的事情,不是吗?

我搜索网络/论坛并发现'找不到类型'错误的情况,但它似乎是由一个不同的问题引起的,我还没有找到摆脱错误的方法

非常感谢任何帮助/提示!

9 个答案:

答案 0 :(得分:21)

如果您的项目针对64位,则需要构建32位并在进行GUI编辑时选择32位解决方案。这是因为studio是32位,因此无法加载64位控件。

答案 1 :(得分:1)

我之前遇到过这种情况,请确保在您的Form.Designer.cs代码文件中,每次调用自定义控件都是为了绝对调用。例如:

Namespace.CustomControl control;

而不是

CustomControl control;

答案 2 :(得分:1)

查看您的参考文献,找到任何有感叹号图标的文章。删除错误的引用并将它们添加回项目。

答案 3 :(得分:0)

您是否尝试过完全禁用UAC(以管理员身份运行IDE以及禁用UAC以防万一)。 此外 - 始终使用Fusion Log跟踪装配负载!请参阅http://msdn.microsoft.com/en-us/library/e74a18c4(v=vs.71).aspx了解如何设置

答案 4 :(得分:0)

您是否从头开始重建组件?

是否包括项目?

他们都在建造吗?

它们是否都在同一平台上构建(x86 vs x64)?

答案 5 :(得分:0)

将默认值设置为x86,并应修复它。

答案 6 :(得分:0)

  1. 清洁解决方案
  2. 构建包含Control
  3. 的项目
  4. 将控件添加到工具箱/表单
  5. 看看是否有效。

答案 7 :(得分:0)

对于有类似问题的任何人。我刚刚在x86 PC上的VS 2013(VB端)中遇到过这个问题。如上所述,我从'anyCPU'切换到'x86'并且表单设计器正在打开。很简单,但如果没有上述帖子,可能不会尝试。为了它的价值,我切换回'anyCPU',并且还没有复发......

答案 8 :(得分:0)

我遇到了同样的错误,无法构建我的应用程序。

在这里搜索,说要更改解决方案平台X64或X32。 但就我而言,解决方案平台仅显示任何CPU和配置管理器选项

但我只是改变解决方案配置。

  

Debug =>释放

然后

  

发布=>调试

最后清理并重建解决方案。它对我有用!! :)