如何分割预编译ASP.NET网站

时间:2013-01-24 10:49:32

标签: asp.net visual-studio web

我有一个网页数量庞大的网站,我在生产服务器上保留了预编译版本(带有固定命名)。

每次我对代码进行任何更改时,我都必须发布整个网站,只需进行一些小改动。

在我将更改部署到生产服务器之前,需要大约一个小时才能发布网站。

有没有办法只发布一批页面,以便发布过程更快?

是否还有其他选项可以节省发布时间?

注意:通过发布我的意思是预编译

欢迎任何建议。

5 个答案:

答案 0 :(得分:0)

如果您只修改html标签(n到服务器端标签)或css,则只能部署您更改的部分。

如果是编译代码,你别无选择。

我想你可能要问问自己为什么要花一个小时来发布你的网站?你的编译时间长了吗?

答案 1 :(得分:0)

减少编译时间和网站项目规模的一种方法是将您的网站拆分为几个更小,更易维护的网站。

您仍然可以在生产中将这些单独的出版物一起部署。

对其他项目的页面的引用完美无缺。 IIS上同一应用程序中的所有页面都将共享同一会话。所以对于最终用户来说,这似乎仍然是一个网站。

由于您在发布任何给定模块时减少了要完成的工作,因此发布会更快。按照您认为合适的批次划分您的模块。

你必须意识到这一点,但我会说它只是为了完成。发布网站时,您可以选择Use fixed naming and single page assemblies。选择此选项可为bin目录中的每个页面使用不同的dll。您只需要上传您进行更改的页面和相应的dll。如果上传时间是一个问题,这将照顾它。

答案 2 :(得分:0)

微软并不真正了解"预编译"如果您注意到您的页面有3个组件,则* .designer,* .aspx * .cs。 * .cs都需要编译成* .dll才能部署到您的网站。传统上有两种类型的可执行文件,exe和#dll' s。 Asp.Net网站被编译成一个dll,用于服务器上运行的所有代码隐藏。微软没有办法去"一半"编译一个dll,然后将它与你没有改变的另一半合并。

如果您的网站花了那么长时间,那就编译和编译部署。我建议你有更多的架构问题,然后是代码问题。在我工作的地方,我们的主要网站是3,000,000多行代码,以完成用户需要做的所有事情。我们不需要一个小时来部署。然而,我们所做的是将我们的业务逻辑分解为多个dll超过100个dll并且我们的网站项目本身就是aspx和驱动流程的裸机代码通过我们的业务逻辑。这允许我们通过我们的更改来改变x数字dll以支持新功能,我们不必每次只更改那些已经改变的所有100个dll,即“#d;”。这是dll的本质。如果我们的业务逻辑100%包含在我们的网站项目中,那么我们的编译,部署将会显着延长。

您想考虑将代码重构为dll。如果您没有与ASPX / ASP.NET解决方案结合,另一个选择是考虑ASP / MVC.NET解决方案。我会考虑重构你的网站。如果需要很长时间就会出现一些严重问题,即使你可以将数据访问权限分解为一个单独的dll,那么你也不必经常编译&只有在您更改了数据访问层时,才会在每次更改网站时部署处理数据访问的dll。

答案 3 :(得分:0)

如前所述,您无法以自动方式执行此操作,但如果您希望缩短发布时间,则可以手动部署文件。

发布网站时,您网站的所有代码文件都会编译到网站bin文件夹中的单个.dll文件中,并且所有.aspx文件都会部署到相关路径。

要手动更新站点,只需在本地计算机上构建网站即可创建更新的.dll并覆盖生产服务器上bin文件夹中的.dll。如果在您的任何实际页面/ .aspx文件上修改了源/ HTML,那么您还需要复制它们。

<强>步骤:

  1. 在本地构建网站
  2. 使用本地构建的.dll
  3. 覆盖生产服务器.dll
  4. 将任何.aspx页面复制到生产服务器,其中HTML /源已修改

答案 4 :(得分:-2)

很简单。

将所有HTML内容存储在代码中的单独文件中。数据库将是一个很好的主意。所有人都必须做的是改变一些文本或交换图像将进入该内容的数据库或文件并更改一些标签。我推荐MySQL。

:)