Carregar e usar dinamicamente o objeto COM em C #

Eu tenho um projeto em C #, onde gostaria de acessar o MS Outlook, se estiver instalado na máquina de um cliente. A parte "perspectiva do acesso" foi feita referenciando o objeto COM do outlook e partindo daí. Meu problema agora é a parte "se estiver instalada". No momento, meu projeto não é compilado em máquinas sem o Outlook instalado, portanto, suponho que terei que não fazer referência ao componente do Outlook e, em vez disso, carregá-lo e usá-lo dinamicamente, após detectar que o Outlook está presente, mas não tenho. encontrou uma maneira de fazer isso. Estou correto e alguém tem alguma dica de como fazer isso?

Obrigado.

Editar: Resolvido. Seguindo o conselho de Hans Passant em um dos comentários sobre o uso dos PIAs do escritório, provou ser o caminho de menor resistência. Eu tive um pouco de dificuldade em obter os PIAs na minha máquina sem escritório, mas foi superado usando a resposta aceita paraesta Pergunta, questão.

questionAnswers(2)

yourAnswerToTheQuestion