Удаление PrecompiledViews.dll из API ASP.Net Core 2

В приложении веб-API .NET Core 2 функция публикации в папке в MS VS 2017 создает:

<ProjectAssembly>.PrecompiledViews.dll
<ProjectAssembly>.PrecompiledViews.pdb

Официальные документы говорят, что PrecompiledViews относится к precompiling Razor Views, но мой API не содержит никаких представлений или статических файлов, только конечные точки REST, которые возвращают json.

Используя .Net Reflector, я обнаружил, что PrecompiledViews.dll пустой.

введите здесь описание изображения

Поэтому я удалил PrecompiledViews.dll и протестировал свой API, и, похоже, он работает нормально, без каких-либо предупреждений или исключений.

Безопасно ли удалять PrecompiledViews.dll и pdp, если API не использует представления бритвы? Если да, есть ли в VS 2017 возможность прекратить публикацию неиспользуемых PrecompiledView?


person Jawad Al Shaikh    schedule 12.10.2017    source источник
comment
Только что открыл вопрос GH github.com/aspnet/MvcPrecompilation/issues/211 для отключения предварительной компиляции на сайтах без просмотра   -  person Martin Ullrich    schedule 12.10.2017


Ответы (1)


Вы правы, шаг прекомпиляции всегда генерирует сборку и не проверяет, есть ли на самом деле представления. Вы можете отключить этап предварительной компиляции, поместив это в свой файл csproj:

<PropertyGroup>
  <MvcRazorCompileOnPublish>false</MvcRazorCompileOnPublish>
</PropertyGroup>

Это активирует обычное сохранение контекста копирования (подпапка refs). Чтобы отключить и это, добавьте

<PreserveCompilationContext>false</PreserveCompilationContext>

к группе свойств.

person Martin Ullrich    schedule 12.10.2017
comment
О нет, этого недостаточно, он создает подпапку 'refs' со 148 файлами! перед изменением csproj, как вы упомянули, подпапка «refs» не создавалась. - person Jawad Al Shaikh; 12.10.2017
comment
добавил это в ответ - person Martin Ullrich; 12.10.2017