Ever wonder where all those paths you specify in the
VS.NET IDE Tools->Options->Projects->VC++ Directories
dialog are stored?
Well, they are stored in a file called VCComponents.dat
in the folder C:\Documents and
Settings\<username>\Local Settings\Application
Data\Microsoft\VisualStudio\7.1.
This file is a INI format file where the 'key' part of
the key/value pair is a path type and the 'value' is a
semicolon delimited list of paths. The paths can have
macros such as $(VSInstallDir).
It appears that before invoking a tool, such as cl.exe,
the IDE adds these paths (after resolving the macros of
course) to the INCLUDE, LIB, and PATH environment
variables.
The following table summarizes the mapping of keys to
environment variables.
Path Type Environement Var
----------- -----------------
Path Dirs PATH
Include Dirs INCLUDE
Library Dirs LIB
Reference Dirs LIBPATH(?)
Source Dirs ???
IMHO, the 'includevsfolders' attribute of the solution
task should do as the IDE does, and append these paths
to the environment before invoking a tool. The
$(VSInstallDir) and $(VCInstallDir) macros can be
resolved from the registry.
Logged In: YES
user_id=68755
I agree on both points (finding the stuff from the registry,
and settings incudevsfolders.)
In this way NAnt's solution task would more closely
resemble what invoking devenv.exe from the command line does.
Logged In: YES
user_id=25786
Can I add a vote for this bug?
Also, to be semi-useful here: The data is stored in the INI
section with the name
"[VC\VC_OBJECTS_PLATFORM_INFO\Win32\Directories]"
Replace Win32 with the appropriate platform. (Does nant
support other platforms? I never tried....)
Logged In: YES
user_id=208501
I definitely would not want this to happen by default.
The reason is that is 2 developers have different IDE settings then the
nant build will give different results.
However the current behaviour is the same as devenv /usenv and the
requested behaviour is devenv without the /useenv flag. (I always use the
former)