Aqui está minha opinião sobre como tornar a solução mais fácil de ver.
O problema, mais do que provável, é o uso de AddRazorRuntimeCompilation()
. Mais especificamente, no startup.cs é provável que você adicione a compilação do razor runtime da seguinte forma:
IMvcBuilder builder = services.AddControllersWithViews()
.AddRazorRuntimeCompilation();
e, para apoiar isso, seu projeto da web provavelmente tem uma referência a Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation
Esse pacote de pepitas depende de Microsoft.CodeAnalysis
que está produzindo toda essa saída indesejada na pasta de publicação.
A correção é editar o arquivo do projeto e tornar a dependência condicional no modo de depuração da seguinte maneira:
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation"
Version="3.1.0" Condition="'$(Configuration)' == 'Debug'" />
</ItemGroup>
e, em seguida, no arquivo startup.cs chame condicionalmente da seguinte AddRazorRuntimeCompilation()
maneira:
IMvcBuilder builder = services.AddControllersWithViews();
#if DEBUG
if (Env.IsDevelopment()) {
builder.AddRazorRuntimeCompilation();
}
#endif
Isso fará com que todas essas Microsoft.CodeAnalysis
librairies fiquem fora apenas quando compilar no modo Debug. Portanto, agora quando você publicar usando o modo Release, eles não farão parte da saída.