Converting an application from VB03/SQL MSDE to VB05/SQL Express -
This may have been true under VS2003, but I have just noticed it in 2005...
If you create a new windows application, and do nothing to it but save it, it creates a bin\debug and bin\release and a obj\debug and obj\release folder (in addition to other folders). In the Solution Explorer, Project, Properties, Compile, both debug and relase are defaulted to complite to the bin\debug and bin\relase respectively. The obj folder is not used at all. I would have expected the release to compile to obj\release.
Anyway, the point of all of this is, is there a URL that explains the bin and obj (and their sub folders) and how they are intended to be used
Thanks!
Bob

bin and obj folder confusion
Sorin Sandu
For the most part - you dont need to be concerned with what is in the obj directories. These are simply files that are used to create the binaries. This is the ultimate objective. These files could be EXE, DLL to name the normal two.
The bin folders are what are created whether your in debug or release. The contents of these folders are what you would use to run your application. The differences are that the release folder generally has debug code removed but you could in theory ship either to a customer - but you would use the contents of the bin folders to generate a setup / deployment for you application.
The obj folders would NOT be used for running the application - they are used for creating the end binaries in the bin folders.
The reason the bin\debug folder and bin\release folder are there is you can create two versions of the application binaries - one with debug code in and the other without. This way you could use the debug version with the additional code in to hunt down bugs which are not obvious through the use of additional debug code.
Either way the bin folders are what you want to be using, the obj folder are simply used to create these folders.
cb3431
Thanks for you help, but I am now more confused than ever. I deleted the Debug and Release folders from both bin and obj folders to see where files are placed on a debug and release build.
On a debug build (F5) certain files are put in bin\debug and certain files are put in obj\debug; some files, such as the .exe, are in both. I have debug builds set to go to bin\debug, which is why it confuses me that anything is put in obj\debug.
Building a release puts everything in obj\release (i have release builds set to go to obj\release). This makes sense to me.
Lets start with the basics - it all works, I just am not understanding how.
What is a definition of bin (binaries) and obj (object)
I was always under the impression that bin was for debugging (never supplied to customer) and obj was for the final release to a customer, but this somewhat muddles that idea.
I assume that as long as you xcopy all the folders/sub foders/files from the obj\release the the release version will work for the customer (I realize there are issues of where the sql database is, but I am just talking about the vb code generated from VS 05).
What would bin\release ever be used for You could arbitrarily tell release build to be put there, but why
Thanks for dealing with an "under the hood" question, I just would like to understand.
Bob
Gurpreet Singh Gill
I think you will find that
The bin folders are the output folder for complete binaries whereas the
obj folders are used to store temporary object files and other files used to
create the final binary.
You have release and debug sub folders under these directories to differentiate the builds.