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.6
etc.) e minha "correção" era"basta implantar no Azure" (é claro que tudo funciona sem problemas). Mas, na verdade, isso não responde:
runtime
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 perguntaeu acho quecompreensão isso ajudará - por exemplo Eu não posso ser o único que terá uma sobrancelha levantada vendo um.exe
"necessário"....
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/2017Parece 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.