【问题标题】:Deleting PrecompiledViews.dll from ASP.Net Core 2 API从 ASP.Net Core 2 API 中删除 PrecompiledViews.dll
【发布时间】:2018-03-23 20:20:43
【问题描述】:

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

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

Offical docs 表示 PrecompiledViewsprecompiling Razor Views 相关,但我的 API 不包含任何视图或静态文件,仅包含返回 json 的 REST 端点。

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

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

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

【问题讨论】:

标签: razor .net-core visual-studio-2017 asp.net-core-webapi asp.net-core-2.0


【解决方案1】:

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

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

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

<PreserveCompilationContext>false</PreserveCompilationContext>

到属性组。

【讨论】:

  • 哦,不,它不够好,它会生成包含 148 个文件的 'refs' 子文件夹!在您提到更改 csproj 之前,没有生成“refs”子文件夹。
  • 将其添加到答案中
猜你喜欢
  • 1970-01-01
  • 2018-05-13
  • 1970-01-01
  • 2018-11-13
  • 1970-01-01
  • 2018-08-25
  • 2019-08-06
  • 2016-04-15
  • 2020-05-17
相关资源
最近更新 更多