在.NET Core 2 Web API应用程序中,MS VS 2017中的发布到文件夹功能产生:
<ProjectAssembly>.PrecompiledViews.dll
<ProjectAssembly>.PrecompiledViews.pdb
Offical docs表示与precompiling Razor Views
相关的预编译视图,但我的API不包含任何视图或静态文件,只返回返回json的REST端点。
使用.Net反射器我发现PrecompiledViews.dll 为空。
所以我删除了PrecompiledViews.dll
并测试了我的API,它似乎工作正常,没有任何警告或例外。
如果API不使用任何剃刀视图,是否可以安全删除PrecompiledViews.dll和pdp?如果是,VS 2017中是否有选项可以停止发布未使用的预编译视图?
答案 0 :(得分:7)
你是对的,预编译步骤总是发出一个程序集,而不检查是否有实际的视图。您可以通过将其放入csproj文件来禁用预编译步骤:
<PropertyGroup>
<MvcRazorCompileOnPublish>false</MvcRazorCompileOnPublish>
</PropertyGroup>
然后,这将激活正常的联合上下文保留(refs
子文件夹)。要停用此功能,请添加
<PreserveCompilationContext>false</PreserveCompilationContext>
到物业组。