Razor 从ASP.Net Core 2 API中删除PrecompiledViews.dll
在.NET Core 2 Web API应用程序中,在MS VS 2017中发布到文件夹功能:Razor 从ASP.Net Core 2 API中删除PrecompiledViews.dll,razor,.net-core,visual-studio-2017,asp.net-core-webapi,asp.net-core-2.0,Razor,.net Core,Visual Studio 2017,Asp.net Core Webapi,Asp.net Core 2.0,在.NET Core 2 Web API应用程序中,在MS VS 2017中发布到文件夹功能: <ProjectAssembly>.PrecompiledViews.dll <ProjectAssembly>.PrecompiledViews.pdb 表示预编译视图与预编译Razor视图相关,但我的API不包含任何视图或静态文件,只包含返回json的REST端点 使用.Net reflector,我发现PrecompiledViews.dll为空 因此,我删除了Pre
<ProjectAssembly>.PrecompiledViews.dll
<ProjectAssembly>.PrecompiledViews.pdb
表示预编译视图与预编译Razor视图相关,但我的API不包含任何视图或静态文件,只包含返回json的REST端点
使用.Net reflector,我发现PrecompiledViews.dll为空
因此,我删除了PrecompiledViews.dll并测试了我的API,它似乎工作正常,没有任何警告或异常
如果API未使用任何razor视图,则删除PrecompiledViews.dll和pdp是否安全?如果是,VS 2017中是否有停止发布未使用的预编译视图的选项?您是对的,预编译步骤始终会发出程序集,并且不会检查是否确实存在视图。您可以通过将其放入csproj文件中来禁用预编译步骤:
<PropertyGroup>
<MvcRazorCompileOnPublish>false</MvcRazorCompileOnPublish>
</PropertyGroup>
到属性组。您说得对,预编译步骤始终会发出程序集,并且不会检查是否确实存在视图。您可以通过将其放入csproj文件中来禁用预编译步骤:
<PropertyGroup>
<MvcRazorCompileOnPublish>false</MvcRazorCompileOnPublish>
</PropertyGroup>
到属性组。刚刚打开了GH问题,用于在无视图站点上禁用预编译。刚刚打开了GH问题,用于在无视图站点上禁用预编译。不,这还不够好,它生成了包含148个文件的“refs”子文件夹!在更改csproj之前,如您所述,没有生成“refs”子文件夹。将其添加到回答中哦,不,这还不够好,它会生成包含148个文件的“refs”子文件夹!如前所述更改csproj之前,未生成“refs”子文件夹。已将其添加到答案中