ASP.NET Core: Minhas Views sumiram no publish?

Você é do tipo que as vezes muda o conteúdo de uma view no ambiente de produção ?

Isto pode ser algo “questionável”, mas é também muito útil se você precisa fazer um pequeno ajuste na parte visual na aplicação.

Eu já precisei mudar códigos JavaScript nas páginas em uma aplicação onde não poderia executar uma nova publicação, e esta facilidade me poupou muito tempo!

Mas uma mudança feita no ASP.NET Core 2.1, alterou o comportamento das páginas Razor na publicação, incluindo tudo no binário (DLL) produzido pela aplicação, ou seja, removendo as Views do local de publicação.

Para demonstrar este comportamento, vamos criar um projeto ASP.NET Core 2.2 no Visual Studio, usando o template MVC (pode ser também um projeto no Core 3), veja:

Agora vamos simplesmente publicar este projeto em um diretório, usando a opção Publish da Solution e escolhendo “Folder”:

Após clicar no botão “Create Profile” clique novamente em “Publish”

Abrindo o diretório, temos os seguintes arquivos:

Veja que não temos uma pasta Views.

Fazendo a mudança no arquivo de projeto:

Mas fazendo uma pequena mudança no arquivo .CSPROJ, acrescentando a tag RazorCompileOnPublish e marcando com “false”:

Salvando o arquivo e publicando novamente, temos os seguintes arquivos, agora com a pasta Views:

E dentro da pasta Views, temos todas as nossas Views:

Você pode acrescentar também a tag RazorCompileOnBuild, que inclui as Views durante a compilação:

Conclusão:

Pequenas configurações podem poupar muito tempo! Espero que faça sentido para você também!