Razor视图预编译已从RC2中删除,因为它在.NET Core中运行时出现问题.
如果其中一个.cshtml文件中存在语法错误,是否有一种方法可以使CI构建失败,或者在预编译返回之前这是不可能的?
(我正在从ASP.NET CLI示例中对HelloMvc项目进行测试.该Views\Home\Index.cshtml文件可以包含任何内容,并且dotnet build仍然会成功.)
当前的RC2构建系统似乎完全忽略了该Compiler/Preprocess文件夹 - 您可以将任何内容放入其中并且不会产生构建错误.在Roslyn连接回来进行预编译之前,我认为目前在构建阶段检查.cshtml文件是不可能的.
我发现的唯一解决方法是让Visual Studio 使用一些脏的精细/替换技巧打开项目中的每个 .cshtml文件,并让Intellisense引擎检查剃刀代码.
更新
查看删除剃刀预编译的提交,似乎整个RazorPreCompileModule本身实际上已被删除,并且不会再回来一段时间了.即使这个代码被手动添加回你的项目,它看起来不像dotnet build会运行任何编译模块.
更新2
View Compilation返回ASP.NET Core 1.1!
要启用它,请将以下内容添加到project.json"dependencies"部分:
"dependencies": {
"Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.Design": "1.1.0-preview4-final"
}
Run Code Online (Sandbox Code Playgroud)
以及以下"工具"部分:
"tools": {
"Microsoft.AspNetCore.Razor.Tools”: “1.1.0-preview4-final",
"Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.Tools": "1.1.0-preview4-final"
}
Run Code Online (Sandbox Code Playgroud)
在"脚本"下,将razor-precompile命令添加到"postpublish":
"scripts": {
"postpublish": [
"dotnet razor-precompile -configuration %publish:Configuration% -framework %publish:TargetFramework% -output-path %publish:OutputPath% %publish:ProjectPath%"
]
}
Run Code Online (Sandbox Code Playgroud)
更新3 - csproj
我们终于开始转向VS2017并执行项目迁移到csproj.这当然打破了剃刀前编译,男孩是一个兔子洞,弄清楚如何解决它 - 官方说明在这里.
您可能遇到的第一个打嗝是自动xproj/project.json - > csproj迁移失败.如果您有一个postpublish脚本部分,则自动迁移将失败project.json,因此请在执行迁移之前继续并完全删除该部分.
事实证明,您仍然可以通过添加<Target Name="PostPublishTarget" AfterTargets="Publish">...</Target>到您的邮件发布脚本来运行.csproj,但现在无论如何这对于剃刀预编译来说都是不必要的.所以不用多说了,一旦你迁移了你的项目,这里是如何在VS2017/csproj land中启用razor预编译的:
将正确的视图编译包引用添加到csproj.在<ItemGroup>包含所有项目的<PackageReference>标签中,添加:
<PackageReference Include="Microsoft.AspNetCore.Mvc.Razor.ViewCompilation" Version="1.1.0" />
将MvcRazorCompileOnPublish属性添加到csproj.在<PropertyGroup>包含项目部分<VersionPrefix>,<TargetFramework>等等,加上:
<MvcRazorCompileOnPublish>true</MvcRazorCompileOnPublish>
而且你已经完成了.现在,构建系统将在每次发布项目时运行razor预编译.发布时,您应该Razor view compilation for myApp -> obj\Release\netcoreapp1.1\myApp.PrecompiledViews.dll在构建输出中看到类似的内容.
| 归档时间: |
|
| 查看次数: |
1980 次 |
| 最近记录: |