Razor 为什么dotnet命令行生成会因MVC视图错误而失败,而VS2017不会?
我正在VS2017中从事一个.NET Core 2 MVC项目。我注意到,当使用命令行构建时,Razor视图中的任何C#错误都会导致构建失败。但是,在VS2017中构建时,构建将正常运行。如果打开了一个包含C#错误的Razor 为什么dotnet命令行生成会因MVC视图错误而失败,而VS2017不会?,razor,msbuild,visual-studio-2017,.net-core,asp.net-core-mvc,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#错误上失败?使用ASP.NET Core 2.x Razor,如果包含Micr
.cshtml
文件,它们将在错误列表中显示为错误,但不会阻止构建完成
我不确定为什么会得到两个不同的结果,因为肯定这两个结果都在幕后使用MSBuild?有没有一种方法可以让VS像命令行一样在Razor C#错误上失败?使用ASP.NET Core 2.x Razor,如果包含
Microsoft.AspNetCore.Mvc.Razor.viewcomployment
包,则可以在发布时预编译视图(将MvcRazorCompileOnPublish
设置为true是可选的)。目前无法将视图作为标准调试生成的一部分进行编译
有关详细信息,请参阅
如果您的项目以.NET Framework为目标,请包含对的包引用
Microsoft.AspNetCore.Mvc.Razor.ViewCompilation:
通过执行
在项目根目录下执行以下命令:
> dotnet publish -c Release
一个.PrecompiledViews.dll文件,包含已编译的
Razor视图,在预编译成功时生成
您是否在命令行和VS中使用相同的目标(release/debug)?啊,当然,我是在命令行的发布模式下构建的。在调试模式下查看这些消息仍然很有用,这可能吗?我不确定。这是可能的,但它可能会减慢你的建设一点。我在这里寻找参考:谢谢你的链接,我想我明白发生了什么。Razor视图仅在发布时编译,而不是在生成时编译。现在看起来不可能在构建时执行此操作。我也检查了构建脚本,看起来构建脚本也在执行发布,因此出现了消息。