我的Visual Studio 2012项目最终可能会占用大量内存,因此我在其解决方案中为64位处理器构建了所有项目。至少有一个项目(不幸的是我不记得哪个)留在"任何CPU"。我决定将表单的内容转换为用户控件。它构建成功,我能够将生成的DLL添加到工具箱中,然后将新控件拖到窗体上。
然而,我对处理器选择之间的不匹配发出了丑陋的警告。为了清理它们,我将所有项目都更改为目标64位处理器。突然间,我无法在表单上使用64位控件。研究揭示了一篇文章说Visual Studio是一个32位进程,因此它无法在工具箱中托管64位控件,但仍然可以动态地使用这些控件。但我发现的KB文章可以追溯到VS 2008的时代。
这在VS 2012中是否仍然如此?如何将64位控件放入工具箱中,以便将其拖放到表单上?
非常感谢。
答案 0 :(得分:1)
解决方案: 向解决方案添加类库 - 使用Any CPU标志进行编译。 将UserControls移动到此库。 将x64项目中的引用添加到此库中。 构建解决方案,然后在x64设计器中提供UserControl。
答案 1 :(得分:0)
使用64位Oracle.DataAccess编写应用程序时遇到了这个问题。然后,解决方案必须变为64位,从而导致通常的问题,即64位控件无法从“工具箱”拖动到表单上。我最终用AnyCPU制作了具有Designer构建器的所有组件,而应用程序的其余部分为x64。效果很好。