Вот моя попытка сделать решение легче увидеть.
Проблема, скорее всего, заключается в использовании AddRazorRuntimeCompilation()
. В частности, в файле startup.cs вы, вероятно, добавите сборку времени выполнения бритвы следующим образом:
IMvcBuilder builder = services.AddControllersWithViews()
.AddRazorRuntimeCompilation();
и чтобы поддержать это, ваш веб-проект, вероятно, имеет ссылку на Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation
Этот пакет nuget зависит от Microsoft.CodeAnalysis
того, производит ли этот нежелательный вывод в папке публикации.
Исправление состоит в том, чтобы отредактировать файл проекта и сделать зависимость зависимой в режиме отладки следующим образом:
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation"
Version="3.1.0" Condition="'$(Configuration)' == 'Debug'" />
</ItemGroup>
а затем в файле startup.cs условно вызвать AddRazorRuntimeCompilation()
так:
IMvcBuilder builder = services.AddControllersWithViews();
#if DEBUG
if (Env.IsDevelopment()) {
builder.AddRazorRuntimeCompilation();
}
#endif
Это приведет к тому, что все эти Microsoft.CodeAnalysis
библиотеки будут отсутствовать только при компиляции в режиме отладки. Так что теперь, когда вы публикуете в режиме Release, они не будут частью вывода.