【问题标题】:Include MVC views and master pages as DLL resources instead of separate files将 MVC 视图和母版页包含为 DLL 资源,而不是单独的文件
【发布时间】:2009-02-26 14:06:13
【问题描述】:

在发布 ASP.NET MVC 应用程序时,是否有一种方法可以通过将 .aspx 视图文件(如果可能的话,也包括 .master)作为资源编译到应用程序 DLL 中来完全删除它们?

发布的应用程序将只是 /bin 文件夹、Global.asax 和 web.config、一个 default.aspx(如果需要)以及 /Content 文件夹中的任何内容。所有视图都将包含在 MyProject.dll 文件中。

为了澄清,我并不是说每个 .aspx 都被一个引用正确资源的 1 行虚拟文件覆盖,而是这些文件可以在已发布的应用程序中完全消除。

这里的目标是简单地更改管理以及围绕它的所有审核和人员层 - 部署一个文件,该文件替换现有文件,并且不会乱用一堆必须添加的 .aspx 文件/removed/updated(是的,SVN 或类似的解决方案会处理该问题,但管理政治阻止了这一点)。

【问题讨论】:

  • 我特别提到了 MVC(它已经是一个 Web 应用程序并将主要代码编译成 dll),并特别说我正在寻找一种不会留下虚拟 aspx 文件的解决方案 - 我是已经知道 aspnet_merge 和在文件后面编译 Web 表单代码。

标签: asp.net-mvc build-process


【解决方案1】:

this 是您要找的吗?

【讨论】:

  • 这看起来是在正确的轨道上,我原以为我需要在某个地方覆盖行为才能实现它。我还需要几个小时才能尝试将其充实为完整的解决方案。
【解决方案2】:

使用 Web 表单视图引擎可以实现,但您必须自己扩展路径提供程序。

这里有一个关于同一件事的问题: Using VirtualPathProvider to load ASP.NET MVC views from DLLs

如果您使用 Spark 视图引擎,它已经内置了额外的路径提供程序。

文档可以在这里找到: Adding a view folder to config

它允许您使用默认虚拟目录或插入您自己的自定义提供程序,将您的视图作为嵌入式资源定位在 DLL 中、文件系统上的其他位置。

【讨论】:

    猜你喜欢
    • 2014-11-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-21
    • 2012-01-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多