我有ASP.NET MVC 5.2.6项目,简而言之,当我想发布网站时,我不想将视图发布为*.cshtml
文件夹中的松散Views
文件,我想将视图集成到一个DLL中。
我发现这个question,它正在讨论编译ASP.NET MVC Razor Views,我应用它并且它对我有用,我能够编译ASP.NET MVC Razor Views,但是我无法摆脱它们,当我删除* .cshtml文件时,网站不再有效,这意味着视图不会进入dll。
删除Views文件夹时出现错误
很明显,说他找不到视图。我应该编写一些代码来操纵Razor搜索引擎来强制它查看dll吗?答案 0 :(得分:2)
在开发过程中,您添加到帖子中的答案的链接已足够,因此它可以帮助您检测所有编译错误,而不是在执行时即时编译视图。
在开发过程中将视图编译成DLL是很少见的。您需要为每个视图,每个文件夹,每页和控件编译它们,或者仅在发布应用程序时将它们编译到一个DLL中。
然后进入您的发布配置文件设置,如下所示:
点击配置链接,然后您将看到此对话窗口:
在上面的winfow中,您可以选择所需的编译选项。
在开发过程中,您不需要将视图编译成DLL。在这个过程中只需修改csproj即可。
答案 1 :(得分:2)
这可能就是你要找的东西:https://github.com/RazorGenerator/RazorGenerator
这将为您生成一个单独的dll视图文件。
虽然我可能不完全理解或同意这种方法对你的解决方案的推理,因为这不一定提供更好的安全机制,因为dll可以被反编译并且源被取出。如果您在服务器中具有良好的安全性并遵循best practices
原始html文件可能更容易管理。
答案 2 :(得分:0)
经过一番思考之后,我能想到的唯一方法就是尝试生成代码中的cshtml文件。但我以前从未想过尝试过。
我认为真正的答案是改变安全政策,因为它不符合目的。或者使用ASP.NET MVC之外的其他东西。
毕竟ASP.NET MVC最终只是将文件发送到请求它们的客户端。