Edit and Continue on 64 bit Windows


Pascal writes about the joy of x64 Windows XP, and some drawbacks.  One drawback is no Edit and Continue using the 64 bit CLR.  You can, however, use E&C against the 32 bit CLR on a x64 machine.  Here’s how you do it:


 


You need to compile your managed assembly with a target CPU of x86.  This will cause the 32 bit CLR to be used rather than the 64 bit CLR. 


 


For a VB Project, right click on the project and go to Properties/Compile/Advanced Compile Options/Target CPU and set it to “x86”.


For a C# Project, right click on the project and go to Properites/Build/Platform Target and set it to “x86”.


 


If you want to (or must) use the 64 bit CLR, we unfortunately cannot provide E&C.  In C# if you try to edit there is a dialog that tells you edits are not allowed .  To prevent the dialog, disable E&C: Tools/Options/Debugging/Edit and Continue, and uncheck ‘Enable Edit and Continue’.

Comments (11)

  1. Eric Wilson says:

    I’ll bite. Is it E&C "doesn’t" work or "can’t" work (obviously those are different beasts)? In either case, why it only on the 64bit version of CLR?

  2. SteveJS says:

    Ah, I’m providing my parochial view of the problem. 🙂 – Sorry.

    I’m on the VS debugger team, not the CLR team. I can’t make 64 bit E&C work because it doesn’t work in the 64 bit CLR.

    The cost of adding it to the 64 bit CLR was too high for it to happen in Whidbey. I’m sure there are real implementation hurdles as well, but I am not familar enough with them to say whether any of them elevate the problem from costly to impractical.

  3. We’ve done some investigation about enabling EnC in the 64-bit CLR and it’s certainly not impossible or impractical. In fact, it’s something we’d like to add to the next major version of the CLR. Of course I can’t comment on what features we WILL add, but I can say that the more customers ask for a feature, the more likely we are to add it. If 64-bit EnC would be valuable for you, please let us know (MSDN product feedback center, support, and/or with blog comments).

  4. sschleicher says:

    Because of memory requirements, we have no choice but to run our ETL engine on 64 bit machines. We have a long initialization period which enables the runtime application to run very quickly. The problem is that we have to go through the initialization time each time a small change is noticed while debugging. Just mentioning it as another client or would greatly benefit from 64 but edit and continue (also seems like the unwinding of the callstack is picky on 64 bit when an error occurs).

    Thanks,

  5. AndreaM says:

    Are you sure it works against the 32 bit CLR on a x64 machine?

  6. When moving from VB to C# a few years ago I relaly missed edit and continue. You can call me lazy but

  7. When moving from VB to C# a few years ago I relaly missed edit and continue. You can call me lazy but…

Skip to main content