Do you have Visual studio 2010? If so create a deployment project (easiest is to just right click the solution, select Add -> New Project, then under "Other project types" -> "Setup and Deployment" select "Visual Studio installer" and then "Setup Project"), then rightclick the new project and select View->File System. Here you will add the stuff that you want to install on the users machine, this could be an output of another project within the same solution (if you added the deployment project to the same solution as the other project this is probably what you want) or some other exe and so on. You can also add shortcuts to desktop and to start menu and so on.
Now the beauty of using this is, if you add the project output from a project that creates a .NET exe, the installer will automatically add any and all dependencies, so it will automatically detect at install time wether the appropriate .NET version is already installed and so on. If you expand "Detected dependencies" after adding a .NET project output to an application folder you should see something like "Microsoft .NET framework" in that list. So now everything is taken care of
This method will also detect other external dependencies you have (say you use a .NET dll for database connection, it will automatically be added and shipped).