in feedback on my last post, Stephane asks about assembly references and shareable paths in csproj and vcproj files.

c# projects in VS 2002 and 2003 store in the project file a path that is relativized to the project directory. this is called the 'hint path', if memory serves. also, in the .user file for the project (a file intended only for the particular user, not to be shared or checked into source code control) the directory of the reference is stored. as long as all references can be relativized to a shareable location this works. the path cannot be edited in VS and macros cannot be used.

in VC projects in VS 2003 assembly references work slightly differently and have many shortcomings. IIRC a relative path is stored, as in C#, and you cannot control the paths or set them to use macros. my recommendation is to use the project system support for /FU and /AI rather than adding "references". the one time when this is not possible is when you need to use the "designer" (visual form editor). because of the internal workings of the designer it requires you to use references. the support for references will be much improved in the upcoming release of VS.

i'm not quite certain about the last part of Stephane's question, regarding CLSIDs and PROGIDs of assemblies. assemblies are managed entities that don't require CLSIDs or PROGIDs unless they are registered for COM interop. I believe the designer loads the assemblies via a managed call to Assembly::LoadFrom, while at runtime the .NET loader does something similar to Assembly::Load.