Voici mon point de vue pour essayer de rendre la solution plus facile à voir.
Le problème, plus que probable, est l'utilisation de AddRazorRuntimeCompilation()
. Plus précisément, dans le startup.cs, vous ajouterez probablement une compilation d'exécution de rasoir comme ceci:
IMvcBuilder builder = services.AddControllersWithViews()
.AddRazorRuntimeCompilation();
et pour soutenir cela, votre projet web a probablement une référence à Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation
Ce paquet nuget a une dépendance Microsoft.CodeAnalysis
qui produit toute cette sortie indésirable dans le dossier de publication.
Le correctif consiste à modifier le fichier de projet et à conditionner la dépendance au mode débogage comme suit:
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation"
Version="3.1.0" Condition="'$(Configuration)' == 'Debug'" />
</ItemGroup>
puis dans le fichier startup.cs appeler conditionnellement AddRazorRuntimeCompilation()
comme ceci:
IMvcBuilder builder = services.AddControllersWithViews();
#if DEBUG
if (Env.IsDevelopment()) {
builder.AddRazorRuntimeCompilation();
}
#endif
Cela entraînera la disparition de toutes ces Microsoft.CodeAnalysis
bibliothèques lors de la compilation en mode débogage. Alors maintenant, lorsque vous publiez en utilisant le mode Release, ils ne feront pas partie de la sortie.