Verificando dependências do .NET antes de iniciar

Tenho vários aplicativos em que trabalho e gosto de distribuir a amigos que exigem .dlls e / ou estruturas fornecidas pela Microsoft. Especificamente, XNA. Estou cansado de receber e-mails deles dizendo "Ele travou" quando, na realidade, tudo o que aconteceu é que eles não têm o XNA (ou .NET 3.5, ou o que for) instalado. No entanto, o Main não pode capturar esses erros porque o .exe os carrega antes mesmo que o principal seja executado.

Portanto, minha pergunta é: como eu iria criar um iniciador que pudesse verificar coisas como .NET 3.5, XNA etc. e exibir uma boa mensagem de erro ("Este aplicativo requer o XNA 3.0, faça o download aqui!") Em vez de parecendo que caiu?

ATUALIZAÇÃO: Eu deveria ter especificado que quero fazer isso sem usar um instalador. Eu tenho um instalador WIX de caldeira que me permite verificar dependências, mas às vezes eu apenas quero fazer upload de um zip para as pessoas brincarem.

questionAnswers(3)

yourAnswerToTheQuestion