Đây là nỗ lực của tôi để cố gắng làm cho giải pháp dễ nhìn hơn.
Vấn đề, nhiều khả năng là sử dụng AddRazorRuntimeCompilation()
. Cụ thể hơn, trong startup.cs bạn có khả năng thêm phần biên dịch thời gian chạy dao cạo như vậy:
IMvcBuilder builder = services.AddControllersWithViews()
.AddRazorRuntimeCompilation();
và để hỗ trợ điều đó, dự án web của bạn có thể có một tài liệu tham khảo Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation
Gói nuget đó có một phụ thuộc vào Microsoft.CodeAnalysis
đó là tạo ra tất cả đầu ra không mong muốn đó trong thư mục xuất bản.
Cách khắc phục là chỉnh sửa tệp dự án và tạo điều kiện phụ thuộc vào chế độ Gỡ lỗi như sau:
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation"
Version="3.1.0" Condition="'$(Configuration)' == 'Debug'" />
</ItemGroup>
và sau đó trong tệp startup.cs có điều kiện gọi AddRazorRuntimeCompilation()
như vậy:
IMvcBuilder builder = services.AddControllersWithViews();
#if DEBUG
if (Env.IsDevelopment()) {
builder.AddRazorRuntimeCompilation();
}
#endif
Điều này sẽ khiến tất cả những lời nói Microsoft.CodeAnalysis
dối đó chỉ bị loại bỏ khi biên dịch ở chế độ Gỡ lỗi. Vì vậy, bây giờ khi bạn xuất bản bằng chế độ Phát hành, chúng sẽ không phải là một phần của đầu ra.