Some of the other answers cover the BCL dependency aspect but it is important to distinguish that there is the runtime and the BCL (base class library). In the legacy (non dnx) world the lines were often blurred because both the runtime and the bcl were installed together at the system level.
Runtime (dnx) dependency
The dnx provides the launch point for the application. It includes the runtime, Just In Time compiler, bytecode compiler (Roslyn), unmanaged low level libraries, and a small amount of managed code. It is important to keep in mind that the dnx is identified by environment (windows, linux, mac, freebsd, etc), architecture (x86, x64, arm, etc), and runtime (currently coreclr or clr). It is also versioned and this versioning is separate from the bcl version. Newer versions of the dnx may be needed to resolve bugs, improve performance, and add features.
So the host machine will need the appropriate dnx (defined by architecture, environment, runtime, and potentially version in the event of breaking changes). There is more than one way to get the dnx on the host. One option would be to include it with the application (using dnu publish -runtime
). Another option would be to use dnvm to install it 'globally'. Either way the runtime is a requirement.
As a side note the dnx for the full runtime (non-core) is only a facade. It is a method of making dnx applications work the same regardless of if they target the full framework or core framework. You may notice the dnx folder for full framework (i.e. dnx-clr-win-x64.1.0.0-beta4) is only about 10MB. If the full framework is not installed then the application will fail at runtime. In essence the dnx for full framework is only a stub which needs the full framework actually installed into GAC as part of system wide install to work.