If I write a program in c# and then install it on another computer, what does the other computer need to have on it before the program will run?

Of course it will have to be a Windows PC but what version(s)? And will they need to download the .Net framework or is everything required contained in the .exe file?

Thanks in advance.

(I'm using .Net 4)