为什么dotnet命令行构建在MVC View错误上失败但VS2017没有?

时间:2018-02-08 11:07:26

标签: razor msbuild visual-studio-2017 .net-core asp.net-core-mvc

我正在开发VS2017中的.NET Core 2 MVC项目。我注意到在使用命令行构建时,Razor视图中的任何C#错误都会导致构建失败。但是在VS2017中构建时,构建运行正常。如果我打开包含C#错误的.cshtml文件,它们将在错误列表中显示为错误,但它们不会阻止构建完成。

我不确定为什么我会得到两个不同的结果,因为他们肯定都在使用MSBuild?有没有办法让VS以与命令行相同的方式在Razor C#错误上失败?

1 个答案:

答案 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视图在预编译成功时生成。