我正在开发VS2017中的.NET Core 2 MVC项目。我注意到在使用命令行构建时,Razor视图中的任何C#错误都会导致构建失败。但是在VS2017中构建时,构建运行正常。如果我打开包含C#错误的.cshtml
文件,它们将在错误列表中显示为错误,但它们不会阻止构建完成。
我不确定为什么我会得到两个不同的结果,因为他们肯定都在使用MSBuild?有没有办法让VS以与命令行相同的方式在Razor C#错误上失败?
答案 0 :(得分:2)
使用ASP.NET Core 2.x Razor,如果包含Microsoft.AspNetCore.Mvc.Razor.ViewCompilation
包,则可以在发布时预编译视图(将MvcRazorCompileOnPublish
设置为true是可选的)。目前无法将视图编译为标准调试版本的一部分。
有关详细信息,请参阅Razor view compilation and precompilation in ASP.NET Core
如果您的项目以.NET Framework为目标,请包含一个包引用 Microsoft.AspNetCore.Mvc.Razor.ViewCompilation:
<PackageReference Include="Microsoft.AspNetCore.Mvc.Razor.ViewCompilation" Version="2.0.0" PrivateAssets="All" />
通过执行a,为依赖于框架的部署准备应用程序 在项目根目录下执行以下命令:
> dotnet publish -c Release
.PrecompiledViews.dll 文件,包含已编译的文件 Razor视图在预编译成功时生成。