If you want to go for a free tool, try out
ILMerge[
^] as describer at
Combining multiple assemblies into a single EXE for a WPF application[
^]. In case if you are not able to use ILMerge with WPF, there is a great alternate given on the ILMerge site.
If you want to pay and get support as well, try
SmartAssembly[
^].
I have never tried any of the options myself, so use both at your own risk.