views:

3710

answers:

5

I'm trying to get edit-and-continue working with Visual Studio 2008 with an ASP.Net MVC project. I'm running 64-bit, so that adds to the problem.

In Configuration Manager, my active solution platform is x86 and all the projects are targeting Debug x86 as well.

In the project properties I have "Enable Edit and Continue" selected.

In Tools->Options...->Debugging->Edit and continue I have "Enable Edit and Continue" selected.

In Tools->Options...->Debugging->General I have "Break all processes when one project breaks" enabled.

As soon as I try to change some source code outside of a view/template'I get the message: Edit and continue: Changes are not allowed while code is running or if the option 'Break all processes when one project breaks' is dissabled. The option can be enabled in Tools, Options, Debugging.

Any ideas how to get it to work?

+1  A: 

Are you using IIS or the built in Visual Studio development server for debugging? I've had trouble before getting edit and continue running under IIS, and ended up just using the built in server.

tbreffni
I'm not using IIS in this case, but the built-in one.
J. Pablo Fernández
+6  A: 

Do you have Enable Optimizations checked? (Advanced Compile Options), I don't think you can have that checked...

Also: http://blogs.msdn.com/webdevelopertips/archive/2008/11/26/tip-29-did-you-know-how-to-enable-edit-and-continue-feature-for-web-application-projects.aspx

eschneider
[also unmanaged code and SQL must be disabled]
eschneider
Where's this Advanced Compile Options? What do you mean by disabling unmanaged code an SQL?
J. Pablo Fernández
in C# projects: Project Settings Build / Optimize code [uncheck] Debug / Enable Debuggers / Enable SQL Server Debugging, Enable unmanaged code debugging [uncheck both]
eschneider
eschneider, do you mean project properties?
J. Pablo Fernández
yes, the project settings. They are a bit different for C# vs VB.NET
eschneider
Optimizing code was never checked. There's no Debug section in there.
J. Pablo Fernández
eschneider
+1 This has solved the problem for me on a VB.NET project! Awesome!
Sung Meister
"Optimized" checkbox location on VB.NET project (VS 2008): Project Properties -> Compile tab -> Advanced Compiler Options button -> Enable Optimization checkbox
Sung Meister
In project properties, in the Web tab, I always had native code and sql server disabled.
J. Pablo Fernández
I'm running out of ideas..Are you using a Debug build? VS Menu / Build / Configuration managerAre all the projects using project reference an not file references?Are all the projects configured for edit and continue?Tried deleting all the current build outputs and performed a clean build?Tried to edit and continue on a different machine?
eschneider
Another thing people can check is the “Target CPU”, it can not be x64, apparently it’s too difficult for MS to get it working in x64.
eschneider
+3  A: 

You can't 'edit and continue' when the program is running. You must break to edit and continue, and if you have many threads you must break all. If when breaking, some threads continue to run, it not a problem with 'edit and continue' but a problem with the break options.

Clangon
If I have to stop the program, then what's the use? it's already stopped! If I understand correctly, using ASP.Net you can just modify code and it gets recompiled on-demand, am I wrong?
J. Pablo Fernández
You have to be in Break Mode
eschneider
You don't need to stop the program, but you must break, and then you can continue. It makes sense, you can't change a program while it's running, it's like fixing the road while cars are driving on it. You can pase the program or add a breakpoint before the area you want to edit, and then when the breakpoint is reached you can edit and continue. it's called 'edit and continue' which meens you are paused now, not 'edit while running'... Good luck
Clangon
You can change an ASP.Net program while is running, am I wrong? You can also change a PHP program, but that's not fair. You can do hot loading of code in Java and in Erlang it's fantastic. But at any rate, even if I'm paused, I'm not allowed to change any code.
J. Pablo Fernández
Is break all processes when one process breaks on? if so you should be able to edit when you break, or at least get a different error message.
Clangon
+1  A: 

I open a separate browser window (so it doesn't close when I stop debugging) then I stop debugging, make changes and build them and just carry on using the other browser window to view the changes. (Yes - this works even with changes in your class files, controllers etc).

If you just want to change the views, CSS or scripts you just need to shift and refresh to make sure your browser gets the updated files rather than using the cache.

If this sounds odd to anyone - try it! It works!

Sohnee
A: 

For VS2010 try this

alt text

Eric Labashosky