在DLL

时间:2018-05-23 14:03:29

标签: c# asp.net-mvc razorengine

我有ASP.NET MVC 5.2.6项目,简而言之,当我想发布网站时,我不想将视图发布为*.cshtml文件夹中的松散Views文件,我想将视图集成到一个DLL中。

我发现这个question,它正在讨论编译ASP.NET MVC Razor Views,我应用它并且它对我有用,我能够编译ASP.NET MVC Razor Views,但是我无法摆脱它们,当我删除* .cshtml文件时,网站不再有效,这意味着视图不会进入dll。

删除Views文件夹时出现错误

enter image description here

很明显,说他找不到视图。我应该编写一些代码来操纵Razor搜索引擎来强制它查看dll吗?

3 个答案:

答案 0 :(得分:2)

在开发过程中,您添加到帖子中的答案的链接已足够,因此它可以帮助您检测所有编译错误,而不是在执行时即时编译视图。

在开发过程中将视图编译成DLL是很少见的。您需要为每个视图,每个文件夹,每页和控件编译它们,或者仅在发布应用程序时将它们编译到一个DLL中。

然后进入您的发布配置文件设置,如下所示:

enter image description here

点击配置链接,然后您将看到此对话窗口:

enter image description here

在上面的winfow中,您可以选择所需的编译选项。

在开发过程中,您不需要将视图编译成DLL。在这个过程中只需修改csproj即可。

答案 1 :(得分:2)

这可能就是你要找的东西:https://github.com/RazorGenerator/RazorGenerator

这将为您生成一个单独的dll视图文件。

虽然我可能不完全理解或同意这种方法对你的解决方案的推理,因为这不一定提供更好的安全机制,因为dll可以被反编译并且源被取出。如果您在服务器中具有良好的安全性并遵循best practices原始html文件可能更容易管理。

答案 2 :(得分:0)

经过一番思考之后,我能想到的唯一方法就是尝试生成代码中的cshtml文件。但我以前从未想过尝试过。

我认为真正的答案是改变安全政策,因为它不符合目的。或者使用ASP.NET MVC之外的其他东西。

毕竟ASP.NET MVC最终只是将文件发送到请求它们的客户端。