【发布时间】:2014-12-12 20:27:15
【问题描述】:
我有一个本地 Sitecore 实例,我在其中进行了涉及代码和新子布局创建的更改。
部署代码后在新环境下可以看到子布局关联的usercontrol(.ascx)文件,但是对应的item没有出现,无法使用。
如果我尝试重新创建用户控件,它会告诉我该文件已经存在,并且由于我缺乏平台经验,我发现自己无法导入它。
最好的方法是什么?
【问题讨论】:
我有一个本地 Sitecore 实例,我在其中进行了涉及代码和新子布局创建的更改。
部署代码后在新环境下可以看到子布局关联的usercontrol(.ascx)文件,但是对应的item没有出现,无法使用。
如果我尝试重新创建用户控件,它会告诉我该文件已经存在,并且由于我缺乏平台经验,我发现自己无法导入它。
最好的方法是什么?
【问题讨论】:
要正确部署新的子布局,您应该创建一个 Sitecore 包。这基本上是一个 zip 文件,允许您以受控方式在 Sitecore 实例之间移动项目和磁盘文件。对于未添加任何专用工具的 Sitecore 基本安装,通常是在服务器之间移动资源的首选方式。
Sitecore 开发者网络上的“包设计器指南”将为您提供有关如何使用开发站点上的 Sitecore UI 来创建包含子布局的项目和文件的包的信息:
http://sdn.sitecore.net/upload/sitecore6/65/package_designer_admin_guide-a4.pdf
创建后,可以将这个包导入到您想要将子布局部署到的任何其他服务器上。
-- 编辑添加--
Derek Hunziker 的回答提出了一个很好的观点:除了基本的 Sitecore 行为之外,如果您愿意,还可以使用第三方工具来增强和扩展部署体验。除了 Hedgehog TDS,您还可以考虑:
Visual Studio 的“Sitecore Rocks”扩展允许从 视觉工作室用户界面。这个工具是免费使用的。 (https://visualstudiogallery.msdn.microsoft.com/44a26c88-83a7-46f6-903c-5c59bcd3d35b/)
还有多种开源工具 - Sitecore Courier 就是一个例子:(https://github.com/adoprog/Sitecore-Courier) 这旨在帮助在 Sitecore 实例之间自动部署。
TDS 和 Courier 都最适合常规部署,例如正在进行的开发周期中的部署,因为它们都包含自动化来帮助决定部署什么。用于包创建的标准 Sitecore UI 和 Sitecore Rocks 扩展更适合临时部署,因为您通常选择手动部署的东西。
【讨论】:
一个常见的最佳做法是使用Team Development for Sitecore 将您的项目与您的代码一起部署。这样就无需在每次想要在环境之间移动项目时创建 Sitecore 包,从而减少人为错误导致的问题。作为额外的奖励,您作为开发人员拥有的项目(例如模板和子布局)可以签入源代码管理。
全面披露:我为 Hedgehog Development 工作:)
【讨论】: