ILMerge alternativa, como incorporar DLLs dependentes do aplicativo em um arquivo EXE?

Como indicado aqui estou tentando incorporar as DLLs no aplicativo exe para distribuir apenas um exe, mas quando tento executar meu aplicativo em uma máquina xp com o .NET 4 completo instalado, ele apenas trava sem erro, estou colocando o seguinte código em o método principal

[STAThread]
        static void Main()
        {
            AppDomain.CurrentDomain.AssemblyResolve += (sender, args) =>
            {
                String resourceName = "AssemblyLoadingAndReflection." + new AssemblyName(args.Name).Name + ".dll";

                using (var stream = Assembly.GetExecutingAssembly().GetManifestResourceStream(resourceName))
                {
                    Byte[] assemblyData = new Byte[stream.Length];
                    stream.Read(assemblyData, 0, assemblyData.Length);
                    return Assembly.Load(assemblyData);
                }
            };

            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new frmrPrincipal());
        }

tenho uma pasta chamada dlls onde estou colocando

Functions.Shared.dll
Alex.UI.dll
Alex.Controls.dll

e estou definindo sua ação de compilação como "Recurso incorporado".

Se eu remover esse pedaço de código e definir as DLLs a serem incluídas, clique em uma vez que o instalador funcione bem. btw im Usando o .NET Framework 4 Perfil completo e o VS2010 SP1

questionAnswers(4)

yourAnswerToTheQuestion