我有一个包含大量页面的网站,我在生产服务器上保留了预编译版本(具有固定命名)。
每次我对我的代码进行任何更改时,我都必须发布整个网站,只是为了做一点小改动。
发布网站大约需要一个小时,然后我才能将更改部署到生产服务器。
有没有办法只发布一批页面,以便发布过程更快?
有没有其他选择可以节省发布时间?
注意:发布是指预编译
欢迎任何建议。
我有一个包含大量页面的网站,我在生产服务器上保留了预编译版本(具有固定命名)。
每次我对我的代码进行任何更改时,我都必须发布整个网站,只是为了做一点小改动。
发布网站大约需要一个小时,然后我才能将更改部署到生产服务器。
有没有办法只发布一批页面,以便发布过程更快?
有没有其他选择可以节省发布时间?
注意:发布是指预编译
欢迎任何建议。
减少编译时间和网站项目大小的一种方法是将您的网站分成几个更小且更易于维护的网站。
您仍然可以在生产中一起部署这些单独的发布。
对其他项目页面的引用完美无缺。IIS 上同一应用程序中的所有页面都将共享同一个会话。所以对于最终用户来说,这仍然是一个网站。
由于您减少了发布任何给定模块时要完成的工作,因此发布速度会更快。根据您认为合适的批次划分模块。
你必须意识到这一点,但我会说它只是为了完成。当您发布网站时,您可以选择Use fixed naming and single page assemblies. 选择此项可为您的 bin 目录中的每个页面设置不同的 dll。您只需要上传您进行更改的页面和相应的dll。如果上传时间是一个问题,这将解决它。
如果您只修改 html 标签(nto 服务器端标签)或 css,您可以只部署您更改的部分。
如果它是编译代码,你别无选择。
我想您可能不得不问自己,为什么要花一个小时才能发布您的网站?你的编译时间那么长吗?.
正如之前的帖子所提到的,您不能以自动方式执行此操作,但如果您想减少发布时间,您可以手动部署文件。
发布网站时,您网站的所有代码文件都编译成网站 bin 文件夹中的单个 .dll 文件,所有 .aspx 文件都部署到其相关路径。
要手动更新站点,只需在本地计算机上构建网站以创建更新的 .dll 并覆盖生产服务器上 bin 文件夹中的 .dll。如果在您的任何实际页面/.aspx 文件上修改了源/HTML,那么您还需要将它们复制过来。
脚步:
如果您注意到您的页面有 3 个组件,即 *.designer、*.aspx *.cs,Microsoft 并没有真正的“预编译”概念。*.cs 都需要编译成 *.dll 才能部署到您的网站。传统上,有两种类型的可执行文件,exe 和 dll。Asp.Net 网站被编译成一个 dll,用于在服务器上运行的所有代码背后。Microsoft 没有办法“一半”编译 dll,然后将其与未更改的另一半合并。
如果您的网站需要很长时间,请编译和部署。我建议你有更多的架构问题而不是代码问题。在我工作的地方,我们的主要网站有 3,000,000 多行代码,用于完成用户需要做的所有事情。我们不需要一个小时来部署。然而,我们所做的是将我们的业务逻辑分解为多个 dll 的 100 多个 dll,而我们的网站项目本身只是 aspx 和背后的基本代码,以驱动流程进入我们的业务逻辑。这允许我们通过我们的更改来更改 x 个 dll 以支持新功能,我们不必每次都部署所有 100 个 dll 只是那些已更改的,这就是 dll 的本质。如果我们的业务逻辑 100% 包含在我们的网站项目中,那么我们的编译,
您想考虑将代码重构为 dll。如果您还没有使用 ASPX/ASP.NET 解决方案,另一种选择是考虑使用 ASP/MVC.NET 解决方案。我会考虑重构您的网站。如果花费这么长时间会出现一些严重的问题,即使您可以将数据访问分解为单独的 dll,那么您不必在每次更改网站时不断编译和部署处理数据访问的 dll,只有当您也更改了数据访问层。
很简单。
将所有 HTML 内容存储在代码的单独文件中。数据库将是一个绝妙的主意。更改某些文本或交换图像所要做的就是进入数据库或文件以获取该内容并更改一些标签。我推荐 MySQL。
:)