Aquí está mi opinión al tratar de hacer que la solución sea más fácil de ver.
El problema, más que probable es el uso de AddRazorRuntimeCompilation()
. Más específicamente, en el startup.cs es probable que agregue la compilación de tiempo de ejecución de la maquinilla de afeitar de esta manera:
IMvcBuilder builder = services.AddControllersWithViews()
.AddRazorRuntimeCompilation();
y para respaldar eso, su proyecto web probablemente tenga una referencia a Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation
Ese paquete nuget depende de Microsoft.CodeAnalysis
que esté produciendo toda esa salida no deseada en la carpeta de publicación.
La solución es editar el archivo del proyecto y hacer que la dependencia sea condicional en el modo de depuración de la siguiente manera:
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation"
Version="3.1.0" Condition="'$(Configuration)' == 'Debug'" />
</ItemGroup>
y luego en el archivo startup.cs condicionalmente llame AddRazorRuntimeCompilation()
así:
IMvcBuilder builder = services.AddControllersWithViews();
#if DEBUG
if (Env.IsDevelopment()) {
builder.AddRazorRuntimeCompilation();
}
#endif
Esto hará que todas esas Microsoft.CodeAnalysis
bibliotecas solo estén fuera cuando se compile en modo de depuración. Entonces, cuando publique usando el modo Release, no serán parte de la salida.