Construa um instalador para o aplicativo .NET que possa ser executado no Windows e no OS X?

Surpreende-me que não consegui encontrar esta pergunta já pedida, por isso, se eu simplesmente não a tiver, por favor notifique-a imediatamente.

Eu preciso escrever um aplicativo muito pequeno e bastante simples no .NET que será baixado pelos consumidores finais e instalado em seu sistema. O modelo de sandbox do Silverlight não funcionará - ele deve ser um executável completo, baixado e instalado.

Aqui está o que eu sei:

Desenvolvi aplicativos que funcionam em um ambiente de área de trabalho controlado - por exemplo, um aplicativo de TI que é executado em centenas de computadores internos.Eu desenvolvi aplicações usando o Mono

O que eu não sei:

Como criar um instalador flexível e robusto que funcionará em uma infinidade de configurações e ambientes de desktop descontrolados.Como fazer o mesmo com o Mono destinado ao Mac OSX.Quais são os problemas comuns na instalação de um aplicativo de usuário final amplamente distribuído e como minimizá-los?

Eu estou procurando omelhores recursos para preencher minhas lacunas de conhecimento.

Relacionado

Equivalente de um serviço do Windows no OSX com o Mono

questionAnswers(8)

yourAnswerToTheQuestion