O que / por que Roslyn é "necessário" na pasta / bin do Asp.Net

Há um monte dePerguntas relacionadas sobre isso, embora a maioria das respostasdefinir Roslyn e / ou fornece uma "correção" para algum problema (exe, com provedores de hospedagem etc.)

O que não consigo rastrear é o "porquê" e "para quê" (talvez apenas no contexto da API do ASP.Net MVC / Web) em/bin/roslyn.

Corri para problemas semelhantes (hospedagem -.exe restrições, suporte para4.6etc.) e minha "correção" era"basta implantar no Azure" (é claro que tudo funciona sem problemas). Mas, na verdade, isso não responde:

por que eles são necessários?isso significa que eles são usados pararuntime compilação(meu cérebro aponta para isso, mas esse é um palpite completo / talvez meu grok talvez errado), comoeste post SO mostra - a menos que seja corrigido, é "ele" (mais abaixo).parece que "remover o pacote" é uma "correção"(com base em algumas respostas anteriores), mas se sim, (re) implora a pergunta

eu acho quecompreensão isso ajudará - por exemplo Eu não posso ser o único que terá uma sobrancelha levantada vendo um.exe "necessário"....

Atualizar

Vai mostrar que "joias escondidas" existem :)leia isso repetidamente... afinal já existe há algum tempo - masnão o tópico de comentários. GRANDE erro - ele estava me encarando todo esse tempo (ou pelo menos desde essa troca):

Dmitry Dzygin 2 de jun de 2015 12:53

Eu tentei a versão mais recente do pacote NuGet, mas parece haver uma diferença na maneira como o compilador é carregado / executado.

Na v0.2.0.0, o compilador Roslyn seria carregado na memória, melhorando bastante o desempenho de sites não pré-compilados com vários arquivos * .as * x / *. Cshtml. A nova versão, no entanto, apresenta um novo/bin/roslyn/csc.exe arquivo, que é executado uma vez por arquivo, removendo completamente o recurso de otimização mencionado acima ...

Ouro:

XMao 2 de jun de 2015 13:22

@Dmitry O trabalho docsc.exe no/bin/Roslyn é invocar oVBCSCompiler.exe, que fica na mesma pasta.VBCSCompiler.exe é o processo que faz a compilação real. Se o VBCSCompiler já estiver em execução, o csc.exe o reutilizará e, portanto, ainda obteremos a melhoria de desempenho mencionada.

Hth ...

Atualização: 10/2017

Parece que isso é relevante depois de todo esse tempo, para uma atualização adicional.

oresponda abaixo por @Donny V é umopção. Compilando totalmente seu aplicativo, incluindo todos osViews (.cshtml/.vbhtml), você não precisaria dissoexe na sua aplicação.

Isso é verdade mesmo se o Visual Studio (até hoje, VS 2017, confusamente)ainda crie o/bin/roslyn e seu conteúdo noPublish processo,mesmo se "compilação completa" estiver definido.

Você pode testar issoexcluindo a/bin/roslyn pasta e seu conteúdo ao enviar seu aplicativo ao provedor de hospedagem.

Embargo:

Como mencionado, compilar completamente seu aplicativo significa que você terá que recompilá-lo, mesmo paraView mudanças de nível.

questionAnswers(4)

yourAnswerToTheQuestion