İşte çözümü daha kolay görmeye çalışıyorum.
Sorun, muhtemelen daha fazla kullanmaktır AddRazorRuntimeCompilation()
. Daha spesifik olarak, startup.cs dosyasında, bu şekilde jilet çalışma zamanı derlemesi eklemeniz muhtemeldir:
IMvcBuilder builder = services.AddControllersWithViews()
.AddRazorRuntimeCompilation();
ve bunu desteklemek için, web projenizin muhtemelen Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation
Bu nuget paketinin, Microsoft.CodeAnalysis
yayınlama klasöründe istenmeyen tüm çıktıları üreten bir bağımlılığı vardır .
Çözüm, proje dosyasını düzenlemek ve bağımlılığı Hata Ayıklama modunda şu şekilde koşullu hale getirmektir:
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation"
Version="3.1.0" Condition="'$(Configuration)' == 'Debug'" />
</ItemGroup>
ve startup.cs dosyasında koşullu olarak şu şekilde arayın AddRazorRuntimeCompilation()
:
IMvcBuilder builder = services.AddControllersWithViews();
#if DEBUG
if (Env.IsDevelopment()) {
builder.AddRazorRuntimeCompilation();
}
#endif
Bu, tüm bu Microsoft.CodeAnalysis
kütüphanelerin yalnızca Hata Ayıklama modunda derlenirken çıkmasına neden olur . Dolayısıyla, Yayın modunu kullanarak yayınladığınızda bunlar çıktının bir parçası olmayacaktır.