这是我已实现的问题“How to compile cshtml before runtime”的扩展。
我面临的问题是,当我强制 MVC 预构建 CSHTML 时,它也开始尝试构建所有临时文件。
它在这样的路径中查找文件:
C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\temp\272abf22\b789edae\App_Web_zej33svj.2.cs
由于这些文件是 CSHTML 文件的翻译(到它们的实际 CS 格式),并且本身不完整,因此会引发异常。这感觉就像一个坏掉的产品。 (这可能就是为什么微软只保留该选项 XML,并且不能通过 UI 配置的原因。)
最佳答案
为了编译 View 而不是将 MvcBuildViews
设置为 true,您可以使用 Razor Generator用于编译 View 。这是一个用于 Visual Studio 的自定义工具,它允许在设计时而不是运行时处理 Razor 文件,从而允许将它们构建到程序集中以便更简单地重用和分发。
当您想要发布您的 mvc 应用程序时,您必须将 MvcBuildViews
设置为 false。
关于c# - 如何在运行前编译 cshtml 而不是在临时文件上抛出构建错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24193146/