Menu

#346 Bug in <solution> macro expansion

0.85
closed-fixed
Tasks (408)
5
2005-03-30
2005-03-24
Ray Johnson
No

I tracked down a bug related to Macro expansion of
VS.Net variables within NANT. The symptom I was
seeing was that macros like $(TargetName) and other
target related macros were empty (null). Obviously, this
broke various asspects of the build.

I eventually was able to debug the problem by stepping
through the NANT source in a debugger. It appears that
this can occur if the OutputFile attribute in a config of a
vcproj file doesn't exist. This attribute exists in the
<tool Name="VCLinkerTool"> part of a project config.
I'm not sure how this can occur. (It happened in "new"
configs - i.e. not Debug or Release, so perhaps it is not
added by default?) In any case, VS.Net certainly
doesn't have a problem with the missing attribute...

Once I knew what was going on the fix was to change
the value in the project config, apply the change, and
then change it back. This ensures it is specified in the
project file.

However, Nant would be more robust if it accounted for
that and if the OutputFile attribute did not exist to set it
to the default VS.Net would use, which is:
$(OutDir)/$(ProjectName).lib

This can be reproduced by taking any solution with
a .vcproj project and removing the attribute OutputFile
within the project file.

Also, it appears the fix would be to adjust the
GetToolSetting call in the OutputPath property getter of
VcConfigurationBase.cs to use a default value.

Discussion

  • Gert Driesen

    Gert Driesen - 2005-03-30

    Logged In: YES
    user_id=707851

    I have this (and a few other issues) fixed locally.

    I'll commit the fixes to cvs after I've done some more
    (regression) testing.

     
  • Gert Driesen

    Gert Driesen - 2005-03-30
    • assigned_to: nobody --> drieseng
     
  • Gert Driesen

    Gert Driesen - 2005-03-30
    • labels: --> Tasks
    • milestone: --> 0.85
    • status: open --> closed-fixed
     
  • Gert Driesen

    Gert Driesen - 2005-03-30

    Logged In: YES
    user_id=707851

    This is now fixed in cvs. I'll upload a new nightly build in an
    hour or so.

     

Log in to post a comment.