【发布时间】:2010-11-11 17:05:05
【问题描述】:
我正在寻找用于将 ASP.NET Web 应用程序项目(非 ASP.NET 网站)部署到生产环境的不同技术/工具?
我对您的持续集成构建服务器将二进制文件放到某个位置和第一个用户请求命中这些二进制文件之间发生的工作流特别感兴趣。
您是使用某些特定工具还是仅使用 XCOPY?应用程序是如何打包的(ZIP、MSI、...)?
第一次部署应用程序时,您如何设置应用程序池和虚拟目录(您是手动创建它们还是使用某些工具创建它们)?
当静态资源发生变化(CSS、JS 或图像文件)时,您是重新部署整个应用程序还是仅重新部署修改后的资源?当程序集/ASPX 页面发生变化时如何?
您是否跟踪给定应用程序的所有已部署版本,如果出现问题,您是否有将应用程序恢复到以前已知工作状态的程序?
请随意完成之前的列表。
以下是我们用来部署 ASP.NET 应用程序的方法:
- 我们将Web Deployment Project 添加到解决方案并设置它以构建 ASP.NET Web 应用程序
- 我们将设置项目(NOT Web 设置项目)添加到解决方案中,并将其设置为获取 Web 部署项目的输出
- 我们添加一个自定义安装操作,并在 OnInstall 事件中运行一个自定义构建 .NET 程序集,该程序集使用System.DirectoryServices.DirectoryEntry 在 IIS 中创建一个应用程序池和一个虚拟目录(此任务仅在第一次部署应用程序时执行)。我们支持 IIS 中的多个网站、虚拟目录的身份验证和应用程序池的设置身份。
- 我们在 TFS 中添加了一个自定义任务来构建安装项目(TFS 不支持安装项目,因此我们必须使用 devenv.exe 来构建 MSI)
- MSI 安装在实时服务器上(如果有以前版本的 MSI,则首先将其卸载)
【问题讨论】:
-
Visual Studio 中的发布向导会将托管服务器上的文件与本地文件进行比较,并且只更改需要更改的内容。没有理由无缘无故地推送所有图片等。
标签: asp.net deployment