B
Bill Burris
When compiling my solution which contains 15 projects (2 Window Apps, 2
Services, 11 class libraries, C#, MC++, & C++), I was receiving warnings
about symbols defined in multiple places. Selecting Rebuild Solution did
not make the problem go away. After selecting Clean Solution, followed by
Rebuild Solution, the problem went away.
I had always assumed that rebuild meant starting over, recompiling all code,
and linking with the recompiled code. It appears that this is not the case
with Visual Studio .NET 2003.
It looks like the rebuild process doesn't always bother obtaining the latest
versions of dlls, if one already exists in the working directory. If Class
A references Class C, B also references C, and D references both A & B,
Visual Studio sometimes ends up with 2 different versions of class C when
building D.
Hopefully the VS team at Microsoft will take a close look at how the build
and rebuild process copies dlls from one project to another, to prevent this
mixing of old and new versions of dlls in the same assembly.
In the bad old days, I would build all my C++ code into one big exe. .NET
has inspired me to split my code up into many small library dlls which I use
in more then one application. I am developing the libraries at the same
time as the applications which use them, so I need to re-compile several
times a day. Sometimes I waste a lot of time banging my head on the monitor
wondering what is causing all the warnings and errors, in code that
previously compiled without problems.
Bill
Services, 11 class libraries, C#, MC++, & C++), I was receiving warnings
about symbols defined in multiple places. Selecting Rebuild Solution did
not make the problem go away. After selecting Clean Solution, followed by
Rebuild Solution, the problem went away.
I had always assumed that rebuild meant starting over, recompiling all code,
and linking with the recompiled code. It appears that this is not the case
with Visual Studio .NET 2003.
It looks like the rebuild process doesn't always bother obtaining the latest
versions of dlls, if one already exists in the working directory. If Class
A references Class C, B also references C, and D references both A & B,
Visual Studio sometimes ends up with 2 different versions of class C when
building D.
Hopefully the VS team at Microsoft will take a close look at how the build
and rebuild process copies dlls from one project to another, to prevent this
mixing of old and new versions of dlls in the same assembly.
In the bad old days, I would build all my C++ code into one big exe. .NET
has inspired me to split my code up into many small library dlls which I use
in more then one application. I am developing the libraries at the same
time as the applications which use them, so I need to re-compile several
times a day. Sometimes I waste a lot of time banging my head on the monitor
wondering what is causing all the warnings and errors, in code that
previously compiled without problems.
Bill