Except that this thread is about C++/CLI which is the C++ side of the CLI/CLR. And even though CLI and CLR have cool new names, they are essentially a bastardized Java VM. The debate here is that CLI/CLR is being touted as the only way to program in Windows based on my book - in essence, MS is attempting to mold C++ into a language that more appropriately fits with their API. Changing a language to suit an API to me is arrogant.
The CLI and the CLR are the virtual machine, runtime system, and library collection. They are one thing.
C++/CLI, C#, VB.Net, J#, JScript.Net and all the many others are programming languages or specific implementations of programming language that make use of the CLI. They typically output CIL bytecode, they make use of the CLI garbage collector, they adhere to the CLI type system (mostly).