In order to run a managed executable on a given machine, which of the following must be installed on that machine?

The managed executable is obviously necessary since it contains the code to be executed. In addition, since it is a managed executable, the execution engine (the CLR) must also be installed. The .NET Software Development Kit is not needed for execution, just development.