从 ASP.Net 核心 2 API 中删除 PrecompiledViews.dll

Deleting PrecompiledViews.dll from ASP.Net Core 2 API

在 .NET Core 2 Web API 应用程序中,发布到 MS VS 2017 产品中的文件夹功能:

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

Offical docsPrecompiledViewsprecompiling Razor Views 相关,但我的 API 不包含任何视图或静态文件,仅包含 REST return json.

的端点

使用 .Net 反射器我发现了 PrecompiledViews.dll empty.

所以我删除了 PrecompiledViews.dll 并测试了我的 API,它似乎工作正常,没有任何警告或异常。

如果 API 不使用任何剃须刀视图,删除 PrecompiledViews.dll 和 pdp 是否安全?如果是,VS 2017 中是否有停止发布未使用的预编译视图的选项?

你是对的,预编译步骤总是发出一个程序集而不检查是否确实存在视图。您可以通过将其放入您的 csproj 文件来禁用预编译步骤:

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

这将激活正常的编译上下文保存(refs 子文件夹)。要同时停用它,请添加

<PreserveCompilationContext>false</PreserveCompilationContext>

到属性组。