For some reason, the <libset> property is including _all_ files specified in the 'dir' attribute, not just those specified in the 'libs' attribute.
It works properly w/ GCC (ie. it sets up the proper -L and -l arguments), but on MSVC (7.0/.NET), the command issued by cctask includes all the files in the specified dir.
As a result, the 'lib' program is choking when it gets to non-lib files.
For example, this is my libset w/ the intent on including this library: H:\ThirdParty\lib\foo.lib:
<libset dir="H:\ThirdParty\lib" libs="foo" />
But the command issued by cctask lists all the files in H:\ThirdParty\lib\
I added a unit test and made some attempts to reproduce the problem. The one scenario that I encounted the observed behavior was when the parent of the lib directory was reference in a fileset.
If you are doing something like:
<libset dir="h:\ThirdParty\lib" libs="foo"/>
Then the implicit includes="**/*" for the fileset would add all files in the ThirdParty/lib directory to the mix and the libset would just add a redundant h:\ThirdParty\lib\foo.lib.
If that isn't the problem, if you could create a mock project (0 byte files for the libs, enough to get to the offending link command) that demonstrates the problem, zip it up and post it as a bug.
If able to reproduce, add the zip file and instructions to:
While stripping down my setup to provide a simple test case, the problem disappeared. It's also working properly in my original setup (which I didn't alter...). Three co-workers witnessed the problem, so I'm not sure what happened.
I'll chalk it up to user error; sorry for the false alarm.