我在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解决方案中。
我不明白为什么它抱怨无法找到该组件,因为该组件是同一项目的一部分。这是一件有效的事情,不是吗?
我搜索网络/论坛并发现'找不到类型'错误的情况,但它似乎是由一个不同的问题引起的,我还没有找到摆脱错误的方法
非常感谢任何帮助/提示!
答案 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)
看看是否有效。
答案 7 :(得分:0)
对于有类似问题的任何人。我刚刚在x86 PC上的VS 2013(VB端)中遇到过这个问题。如上所述,我从'anyCPU'切换到'x86'并且表单设计器正在打开。很简单,但如果没有上述帖子,可能不会尝试。为了它的价值,我切换回'anyCPU',并且还没有复发......
答案 8 :(得分:0)
我遇到了同样的错误,无法构建我的应用程序。
在这里搜索,说要更改解决方案平台X64或X32。 但就我而言,解决方案平台仅显示任何CPU和配置管理器选项
但我只是改变解决方案配置。
Debug =>释放
然后
发布=>调试
最后清理并重建解决方案。它对我有用!! :)