Menu

#272 solution task: C++ and includevsfolders

0.85
open
nobody
Tasks (408)
5
2005-01-05
2005-01-05
No

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.

Discussion

  • Philip Craig

    Philip Craig - 2005-02-07

    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.

     
  • Robert Blum

    Robert Blum - 2005-04-27

    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....)

     
  • Mark Bestley

    Mark Bestley - 2005-07-21

    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)

     

Log in to post a comment.