我们正在尝试通过 VS2010 利用 Web Deploy 来简化发布过程。我们希望能够快速回滚任何损坏的版本,因此我们为每个版本创建了文件夹:
- 目录:\www\1.0.0
- 目录:\www\1.1.0
到目前为止,我在本地发布网站,将文件复制到我们服务器上的新发布文件夹,然后手动将网站的物理路径更新为 IIS 中的新文件夹。由于该网站指向特定版本的文件夹,因此我无法在该网站上使用 Web 部署,因为结果会覆盖现有文件。
我对覆盖问题的解决方案是创建一个指向根文件夹 (C:\www) 的部署站点,并使用 Web 部署来创建新版本。下一步是更新站点的物理路径,但我找不到合适的方法来实现这一点。我知道在构建后事件中执行命令,但我对 Web 部署文档有点迷茫,因为动词选项是同步、转储和删除。
发布完成后,我只需要 IIS 站点指向新的物理路径。这可能吗?我愿意接受其他选择(例如在本地发布然后执行批处理文件)。
答案1
如果还没有,那么我建议将您的项目放入源代码控制中,并忘记基于版本的不同部署目标。保留一个部署目标,如果该版本中的某些内容出现问题,则返回源代码控制中的上一个版本并重新部署。这样您就可以摆脱多个文件夹和必须修改 Web 根目录的混乱局面。