MVVM mostra nova janela da VM quando projetos separados

Minha pergunta envolve algo em que mil e um tópicos são criados, e se eu ignorei uma resposta à minha pergunta, me desculpe, mas, na minha opinião, ninguém realmente poderia responder à minha pergunta. Por exemplo:Abrindo nova janela no MVVM WPF

As respostas são boas quando se você usa apenas um projeto WPF (incluindo modelos, vms e visualizações), mas como estou aprendendo a implementar o MVVM da maneira correta (e li várias vezes que a melhor prática é criar uma biblioteca de classe separada (dll) para model, viewmodel e um projeto de GUI separado) que não parece funcionar aos meus olhos porque se eu quiser criar uma interface como IWindowService (descrita na URL anterior e tambémaqui, É impossível acessar a classe Window ou Control porque, então, eu deveria ter uma referência ao projeto gui e todo o objetivo do padrão é destruído.

Portanto, minha pergunta é como mostrar uma nova janela (com um novo modelo de exibição), por exemplo, do MainViewModel, respeitando os princípios do MVVM vagamente acoplados E projetos separados.

Exemplo mais detalhado do que estou tentando alcançar:

Eu tenho a seguinte estrutura:

MODELO (projeto dll)
Perfil

VIEWMODEL (projeto dll)
MainViewModel
AddProfileViewModel

VIEW (WPF) (projeto exe)
Janela principal
AddProfileWindow

Abro o MainWindow e quero pressionar o botão AddProfile, e o AddProfileWindow precisa aparecer com o AddProfileViewModel anexado a ele.

questionAnswers(2)

yourAnswerToTheQuestion