Oto moje starania, aby rozwiązanie było łatwiejsze do zobaczenia.
Problem, bardziej niż prawdopodobne, to użycie AddRazorRuntimeCompilation()
. Mówiąc dokładniej, w startup.cs możesz dodać kompilację środowiska wykonawczego razor w następujący sposób:
IMvcBuilder builder = services.AddControllersWithViews()
.AddRazorRuntimeCompilation();
i aby to wesprzeć, twój projekt internetowy prawdopodobnie ma odniesienie do Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation
Ten pakiet nuget jest zależny od Microsoft.CodeAnalysis
tego, że generuje wszystkie niechciane dane wyjściowe w folderze publikowania.
Rozwiązaniem jest edycja pliku projektu i uzależnienie zależności od trybu debugowania w następujący sposób:
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation"
Version="3.1.0" Condition="'$(Configuration)' == 'Debug'" />
</ItemGroup>
a następnie w pliku startup.cs warunkowo wywołać AddRazorRuntimeCompilation()
tak:
IMvcBuilder builder = services.AddControllersWithViews();
#if DEBUG
if (Env.IsDevelopment()) {
builder.AddRazorRuntimeCompilation();
}
#endif
Spowoduje to, że wszystkie te Microsoft.CodeAnalysis
librairie będą dostępne tylko podczas kompilacji w trybie debugowania. Więc teraz, kiedy publikujesz w trybie Release, nie będą one częścią danych wyjściowych.