Algo de gosto de usar é o namespace System.Diagnostics com o método Debugger.Launch. Assim não preciso atachar o processo para depuração. No codigo insiro a linha onde quero fazer o attach, quando isto rodar, o proprio windows pergunta se quer atachar com o Visual Studio.
Exemplo
static void Main(string[] args)
{
Console.WriteLine("System.Diagnostics");
System.Diagnostics.Debugger.Launch();
Console.WriteLine("Testando");
}
Ao passar pela linha "Debugger.Launch()" o VS pergunta se quer atachar. Se já estiver, nada acontece.

Outra dica, é colocar todo o output da solution na pasta de trabalho do Runner. Assim nenhuma dependencia será antiga, fazendo com que não consiga uma depuração de todas as dll. Isto pode ser feito por linha de comando rapidamente.
Para tal, é necessário abir o "Developer Command Prompt for VS2012" de rodar a linha abaixo, alterando o nome da solution e o caminho do output
msbuild "C:\Benner\Fontes\Bef\Bef.sln" /m /p:outdir="C:\Benner\Bin\Runner"