Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Visual Studio designer in x64 doesn't work

In Visual Studio 2010 64bit I can't design my forms.
I keep getting this warning (and error):

Warning 18   The designer could not be shown for this file because none of the classes within it can be designed.  The designer inspected the following classes in the file:  MainForm --- The base class 'Blah' could not be loaded.  Ensure the assembly has been referenced and that all projects have been built. 

This only happens with when I compile for x64 ... in x86 the designer works well.

Just want to be clear that I NEED the project to work on x64 because a lot of the project's components are compiled in x64 and won't work if the forms are in x86.

Has anyone else encountered this and found a solution ?

like image 303
Yochai Timmer Avatar asked Mar 21 '11 14:03

Yochai Timmer


People also ask

How do I run Visual Studio in 64-bit mode?

From the Visual Studio menu, choose Test, then choose Settings, and then choose Processor Architecture. Choose x64 to run the tests as a 64-bit process.

Why is Visual Studio not 64-bit?

Key Benefit of having VS 2022 as 64-bit Visual Studio supports creating and running 64-bit applications on 64-bit computers for a long, but Visual Studio remains a 32-bit application itself. If you have a 32-bit operating system, you can't take advantage of these 64bit features.

Does Visual Studio support 64-bit?

Visual Studio 2022 on Windows is now a 64-bit application.

Is Visual Studio 32-bit or 64-bit?

Visual Studio 2019 is the last version of Visual studio that used the 32-bit version of MSBuild for builds within Visual Studio. Since Visual Studio 2022 is now 64-bit and runs MSBuild in-process, it now runs a 64-bit version of MSBuild, including when you hit F5 or Ctrl-F5.


2 Answers

I can repro your problem by creating a WPF application with a user control (put the user control on the wpf app, and build x64).

Here's my guess as to what's going on:

Visual Studio is a 32-bit application and the WPF designer has to load referenced assemblies (you see that behavior all of the time when you use user controls, where you have to rebuild to get the designer to update). Windows does not support a sharing between 32-bit and 64-bit - you have to have either a 32 bit app or a 64-bit app, period, no sharing.

Since the WPF designer is 32-bit, the assemblies need to be 32 bit.

Here is a possible solution:

Design your app with the "Any CPU" option. This will cause your code to JIT to 32-bit on 32-bit platforms and 64-bit on 64-bit platforms.

  • The designer will work in "any cpu" because the assemblies get jitted to 32-bit.
  • When you need to debug 64-bit specifically, switch your build configuration to 64-bit (knowing that you must switch back to "32-bit or "any cpu" do form design)
like image 86
JMarsch Avatar answered Oct 02 '22 16:10

JMarsch


This is a bug in VS 2008, 2010, 2013, 2015, 2017, and 2019.

Here's the bug report:

http://connect.microsoft.com/VisualStudio/feedback/details/646328/the-designer-could-not-be-shown-with-platform-x64

It seems there is no fix for this yet.

like image 36
Gerardo Contijoch Avatar answered Oct 02 '22 15:10

Gerardo Contijoch