我正在使用RazorLight将razor模板(.cshtml文件)呈现给字符串,然后我在电子邮件中使用它们。
这在开发中工作正常,但在部署时(通过WebDeploy到Azure应用服务),所有.cshtml文件都被编译为[Project] .PrecompiledViews.dll,因此我无法访问原始.cshtml。 ..还有其他方法可以解决这个问题,例如将模板存储在数据库或blob存储中,但只需简单地将模板与项目一起发布即可。使它们成为嵌入式资源可能是一种选择,虽然这感觉有点难看。
我已经尝试将它们复制到我的wwwroot文件夹中,将它们标记为Copy Always,并且我已经研究了几个小时。到目前为止没有运气。有没有办法让这项工作,也许是在.csproj级别?
答案 0 :(得分:1)
是的。与早期版本的.Net Core一样,可以部署原始CHTML文件。 我们必须在csproj文件中将以下属性设置为false:
MvcRazorCompileOnPublish
有关更多信息,请参考此位置: https://docs.microsoft.com/en-us/aspnet/core/mvc/views/view-compilation?view=aspnetcore-2.1