代码之家  ›  专栏  ›  技术社区  ›  Aximili

.NET:将Web应用程序拆分为多个DLL?

  •  2
  • Aximili  · 技术社区  · 15 年前

    是否可以将一些代码隐藏(.cs)文件(例如特定文件夹下的所有.cs文件)编译到一个dll中,而将其余文件编译到另一个dll中?

    我们有一些通用的代码和页面(aspx+cs文件),我们想在许多网站上使用。我们希望它编译成一个dll(例如common.dll)。

    其余的文件将是特定于网站的,每个网站都是唯一的,并且应该编译成另一个dll(例如website3.dll)

    这样,如果我们对后面的公共代码进行更改,我们就可以将common.dll发布到所有网站上。

    是否可以使用VSWebDeveloperExpress2008?

    提前谢谢。

    编辑:我们已经在使用类库,但不用于页面(aspx+cs)

    2 回复  |  直到 13 年前
        1
  •  2
  •   Murph    15 年前

    简单地说,您需要在单独的项目(类库)中使用公共代码,然后将对该程序集的引用添加到每个网站。您可以直接引用程序集,也可以(我认为在web express中)将项目添加到解决方案中,并将站点和公共代码一起构建。我更喜欢后者,但这两种制度都有很好的理由。

    这对于构建.NET应用程序的方式来说是相当重要的(—:您需要了解名称空间和使用/导入(取决于您选择的语言)。

    不幸的是,我不记得用express做这两件事的机制(如果有人做了,他们可以根据需要编辑或评论)。

    另外,您需要考虑如何将其集成到版本控制系统中—在某种程度上,详细信息将取决于您是引用单独构建的.dll还是包含项目。如果您没有版本控制,那么停止,首先去整理,然后回来解决这个问题。

    另外,我认为-尽管我很高兴被更正,但后面的代码指的是与web表单直接相关的代码,而不是与那些页面分离和不同的类。

        2
  •  1
  •   Fabio Jim Dagg    13 年前

    可以选择使用web部署项目( http://www.microsoft.com/download/en/details.aspx?id=25163 对于VS2008和 http://www.microsoft.com/download/en/details.aspx?id=24509 对于VS2010)。在选项中,您可以指定web项目的输出是单个dll(web应用程序的默认值)还是每个文件夹的程序集。

    它适合只修改一个页面/控件并仅部署受此更改影响的程序集的需要。

    但是web部署项目不支持vs-express版本。