Fog Creek Software
Discussion Board

Incessant rebuilds with VS.NET

Something about VS.NET is really starting to grate on our nerves.

We have a rather large/complex solution with around 50 projects.  Everytime we try to debug the application, VS.NET complains that projects are out-of-date even after we've just done a rebuild.  Furthermore, if we change just one file, during the rebuild VS.NET insists on checking every project to see if it's up to date, which takes on the order of one second per project.  VS6 actually knew which project needed to be rebuilt and didn't spend all this time waffling about what to build so this seems like a serious backslide in functionality.

The worst thing now is that when we try to debug, even if we tell VS.NET not to rebuild, it checks all the projects AGAIN and then starts the debugger.

I assume other people are facing similar issues?  Does anyone know how to stop this ridiculous behavior?

Richard Kuo
Friday, September 26, 2003

The up-to-date checks in VS.NET are completely broken for some reason. All my project files are local so I don't mind as much but I can see how it could get very annoying with lengthier builds.

In addition to needlessly recompiling projects that are up-to-date, VS.NET doesn't include resource files (.resx) in its rebuild checks. So it will NOT rebuild a project/solution when the resources have been changed -- you have to do that manually.

Oh, and have you seen the "can't overwrite XML file in target directory" bug yet? VS.NET occasionally leaves output files locked until it's shut down and restarted. Fun!

I recommend moving the build process to NAnt:

Yeah, it's underdocumented freeware and it's buggy in its own way but unlike VS.NET, the builds actually work.

Chris Nahr
Friday, September 26, 2003

exit and reopen project?

Friday, September 26, 2003

+1 for the build system in VS.NET being a fundamentally broken piece of trash. +1 for loving to NAnt.

Brad Wilson (
Friday, September 26, 2003

Has anyone got a sneak preview the new MS build product? I saw a mention of it on someone's blog and it was supposed to be demonstrated at PDC.

Mark Hoffman
Friday, September 26, 2003

For those of you using NAnt - How does that work for debugging? Are you only using NAnt for final builds, but still debugging with the VS.NET builder?

Just trying to understand the process as I'd like to try out NAnt soon.


Friday, September 26, 2003

I use NAnt for builds, but run from within VS.Net because:

1. it is the editor I am most familiar with
2. the debugger

As far as VS.Net is concerned I am working on a make file project that wraps the NAnt build file.

Unfortunately NAnt dependency checking for C++ projects is worse than VS.Net's.  In the build I am using it is totally non-existant and relies on the compiler to do minimal rebuilds.

Newer builds do some checking, but in a way that was incompatible with our build process.  Sigh ...

Rob Walker
Friday, September 26, 2003

In point of fact, if you wanted to eschew VS.NET altogether, you could. There is a GUI debugger that ships with the SDK. Or you can use the IDE to edit and debug, as others do (I find Intellisense very useful, personally, and can't find it in any quality in any other editor besides VS.NET's).

We do C#, not C++. I've never used NAnt to do C++ builds.

Brad Wilson (
Friday, September 26, 2003

One bug that we ran into all the time comes from just wanted to relink everything. This is worked around by not putting any relative paths in the "Additional Dependencies" section in the "Linker\Input" options. Only put file names here. If the files you want to link to aren't in your %PATH%, put the paths to the .libs in the "Linker\General", "Additional Library Directories"

My opinion is that VS.NET has been MS's best and worst product wrapped into one. It's so feature-rich and powerful, but ridden with annoying bugs. I haven't been able to switch to VS.NET 2003 yet. Has anyone seen improvements with that?

Nick Lassonde
Friday, September 26, 2003

This problem often occurs when you put relative paths into your resource compiler or MIDL compiler input paths.  You can usually fix it by including "$(ProjectDir)" in whichever of those path collections you have other paths in.  See

David Pickett
Friday, September 26, 2003

Copy that URL and paste it, btw, I think the posting software is escaping the '%' signs, so the link doesn't directly work.

David Pickett
Friday, September 26, 2003

Generally what I do when using NAnt and developing is to build a version with all the debug symbols etc ,deploy it to my test environment and then attach VS.NET to the aspnet_wp and remotely debug it. Works well enough

Dan G
Friday, September 26, 2003

The GUI debugger that comes free with the SDK is good, but not as good as the VS.Net debugger.  Particularly for me, I can't set conditional breakpoints with the free debugger.

Friday, September 26, 2003

*  Recent Topics

*  Fog Creek Home