Q:

Why can you use just the alias to declare a enum and not the .NET type?

This works perfectly.. 
public  enum NodeType : byte
{ Search, Analysis, Output, Input, Audio, Movement} 

This returns a compiler error... 
public  enum NodeType : Byte
{ Search, Analysis, Output, Input, Audio, Movement} 

Same happen when using reflection...
So, does somebody know why the enum-base is just an integral-type?

A:

Probably it is just a incomplete compiler implementation (while documented).
Technically, this should work too, but it doesn't.
using x = System.Byte;

public  enum NodeType : x
{ Search, Analysis, Output, Input, Audio, Movement}

So the parser part of the compiler just allows the fixed list byte, sbyte, short, ushort, int, uint, long, or ulong. There is no technical restriction I am aware of.

A:

Because the specs say so:

enum-declaration:
    attributesopt
    enum-modifiersopt enum identifier enum-baseopt
    enum-body ;opt
enum-base:
    : integral-type
enum-body:
    { enum-member-declarationsopt }
    { enum-member-declarations , }
Each enum type has a corresponding integral type called the underlying type
of the enum type. This underlying type must be able to represent all the
enumerator values defined in the enumeration. An enum declaration may
explicitly declare an underlying type of byte, sbyte, short, ushort, int, uint,
long or ulong. Note that char cannot be used as an underlying type. An enum
declaration that does not explicitly declare an underlying type has an
underlying type of int.
...

integral-type is defined as,
integral-type:
    sbyte
    byte
    short
    ushort
    int
    uint
    long
    ulong
    char

