Inilah pendapat saya untuk mencoba membuat solusi lebih mudah dilihat.
Masalahnya, kemungkinan besar adalah penggunaan AddRazorRuntimeCompilation()
. Lebih khusus, di startup.cs Anda cenderung menambahkan kompilasi runtime razor seperti:
IMvcBuilder builder = services.AddControllersWithViews()
.AddRazorRuntimeCompilation();
dan untuk mendukung itu, proyek web Anda mungkin memiliki referensi Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation
Paket nuget itu memiliki ketergantungan pada Microsoft.CodeAnalysis
yang menghasilkan semua output yang tidak diinginkan dalam folder publish.
Cara mengatasinya adalah mengedit file proyek dan membuat ketergantungan bergantung pada mode Debug seperti:
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation"
Version="3.1.0" Condition="'$(Configuration)' == 'Debug'" />
</ItemGroup>
dan kemudian dalam file startup.cs bersyarat panggilan AddRazorRuntimeCompilation()
seperti:
IMvcBuilder builder = services.AddControllersWithViews();
#if DEBUG
if (Env.IsDevelopment()) {
builder.AddRazorRuntimeCompilation();
}
#endif
Ini akan menyebabkan semua Microsoft.CodeAnalysis
librairies hanya keluar saat kompilasi dalam mode Debug. Jadi sekarang ketika Anda mempublikasikan menggunakan mode Rilis mereka tidak akan menjadi bagian dari output.