[VS] Solution to “Changes to 64-bit applications are not allowed”

One of the most popular features in the Visual Studio debugger is the ability to edit code during a debug session and have the changes apply without having to stop the debugger, recompile the application and then run the application to verify the changes. This feature is affectionately known as “Edit and Continue” or “E&C” for short.

Unfortunately, Edit and Continue isn’t supported on 64-bit. In fact, if you try to use Edit & Continue when debugging a 64-bit application, you get the following error message: “Changes to 64-bit applications are not allowed”, as shown below.

Many users may not be aware that by default, when you create a C# or VB project in Visual Studio (2010), the “Platform” for the project is set to “Any CPU”. This means that if you run your application on a 32-bit operating system, your application will run as a 32-bit process and similarly, if you run your application on a 64-bit operating system, the application will be 64-bit. The consequence of “Any CPU” is that when you try to debug your application on a 64-bit operating system, you won’t be able to use the Edit and Continue feature.

However, there is a workaround. During development, you can set the Platform for your project to 32-bit which means that your application will run as a 32-bit process even on a 64-bit operating system. This is known as WOW64 or “Windows On Windows” which basically means that you can run a 32-bit application on a 64-bit operating system.

So, how do you set the Platform for your project to 32-bit? Well, you need to create a 32-bit platform using the Visual Studio Configuration Manager. Here is a short walkthrough.

First, open the “Configuration Manager” dialog from Build –> Configuration Manager. The Configuration Manager dialog is shown below.

On the Configuration Manager dialog, select “New…” from the “Active solution platform” dropdown, as shown here.

On the “New Solution Platform” dialog, select “x86″ and press the OK button.

That’s it! Your project is now compiled as a 32-bit application and therefore, it also runs as a 32-bit process.

An important note to remember is that if you are planning to deploy your application to a 64-bit machine and you want the application to run as a 64-bit process, don’t forget to set the project platform back to “Any CPU” and compile the project.

Attention:

I am not sure if the “Create new project platforms” option in the “New Solution Platform” dialog should be checked or not (in the last image). If you know how it works, please let me know, thanks.

CLICK HERE to view the Simplified Chinese version of this post.

Leave a Reply

Your email address will not be published. Required fields are marked *

:wink: :-| :-x :twisted: :) 8-O :( :roll: :-P :oops: :-o :mrgreen: :lol: :idea: :-D :evil: :cry: 8) :arrow: :-? :?: :!: