我有一个本地 Sitecore 实例,我在其中进行了涉及代码和创建新子布局的更改。
部署代码后在新环境中可以看到子布局关联的usercontrol(.ascx)文件,但是对应的item没有出现,无法使用。
如果我尝试重新创建用户控件,它会告诉我该文件已经存在,并且由于我对平台缺乏经验,我发现自己无法导入它。
进行的最佳方式是什么?
一个常见的最佳实践是使用Team Development for Sitecore将您的项目与您的代码一起部署。这样就无需在每次想要在环境之间移动项目时创建 Sitecore 包,从而减少人为错误导致的问题。作为额外的奖励,您作为开发人员拥有的项目(例如模板和子布局)可以签入源代码管理。
全面披露:我为 Hedgehog Development 工作:)
要正确部署新的子布局,您应该创建一个 Sitecore 包。这基本上是一个 zip 文件,允许您以受控方式在 Sitecore 实例之间移动项目和磁盘文件。对于未添加任何专用工具的 Sitecore 基本安装,它通常是在服务器之间移动资源的首选方式。
Sitecore Developer Network 上的“包设计器指南”将为您提供有关如何使用开发站点上的 Sitecore UI 来创建包含项目和文件的包的信息,用于您的子布局:
http://sdn.sitecore.net/upload/sitecore6/65/package_designer_admin_guide-a4.pdf
一旦创建,这个包就可以被导入到你想要部署子布局的任何其他服务器上。
-- 编辑添加 --
Derek Hunziker 的回答提出了一个很好的观点:除了基本的 Sitecore 行为外,还有第三方工具可用,如果您愿意,它们可以增强和扩展部署体验。除了 Hedgehog TDS,您还可以考虑:
Visual Studio 的“Sitecore Rocks”扩展允许从 Visual Studio UI 中创建包。这个工具是免费使用的。(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 扩展更适合临时部署,因为您通常选择手动部署的东西。