1

我们目前正在运行 Sitecore CMS 6.5 (120706),并从此处安装了共享源 Item Buckets 模块:

https://github.com/jerrong/Sitecore-Item-Buckets/tree/master/sitecorepackages/ItemBuckets%206.5%20NET_40/Final

我们希望升级到 CMS 版本 7.0。有人告诉我,目前没有升级路径,预计几个月后会有升级。但是,我们宁愿不必等待。

项目桶仅用于我们网站的单个部分。其他所有内容都通过标准内容树交付。

我们已经尝试按照文档化升级过程的要求首先升级到 6.6,尽管它在说明中稍后提到共享源项目存储桶模块不幸不支持升级。确认这肯定不起作用,我们收到错误:

Exception Details: System.IO.FileLoadException: Could not load file or assembly 'Lucene.Net, Version=2.3.1.3, Culture=neutral, PublicKeyToken=null' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)

我们还尝试通过删除 .config 文件等来禁用项目存储桶,但我们遇到了更多问题,可能是因为项目存储桶更新所做的实际内容/数据模板更改。

我们正在考虑尝试全新安装 CMS 7.0,然后使用 Sitecore 包迁移我们的自定义代码库、内容树中的项目(包括数据模板、布局、渲染等)以解决该问题。

有人可以验证这种方法,还是更好地提出一个不那么痛苦的解决方案!?

非常感谢

4

3 回答 3

7

(这不是官方的 Sitecore 建议,因为这仍在免责声明中,免责声明!)

一些可能有帮助的想法..

首先,我们需要处理数据方面的工作(暂时忘记前端代码)

您可以取消存储您的项目,以便它们再次成为普通的 Sitecore 项目。然后,您可以删除之前提到的项目存储桶模块模板和字段(通过“取消存储桶”,您现在应该不再依赖存储桶模板等)

您还可以考虑使用 Sitecore Rocks 创建一个“反包”,无论哪种方式,这都应该让您的站点更接近项​​目桶模块之前的站点。

然后,您可以获得 6.5 (120706) 的基本/全新安装,然后使用 Sitecore Courier 等工具将其与您的工作副本“主”数据库进行比较。

Sitecore Courier - https://github.com/adoprog/Sitecore-Courier - 允许您将 Sitecore DB 的 2 个版本相互比较并制作一个更新包。

这应该使您成为对您的“主”数据库所做的所有更改的更新包,以便理论上您可以将其安装到 Sitecore 的新副本中。

当您安装此更新包时,您可以看到这对您有多大帮助,理论上您可以重新存储使用旧存储桶模块但使用新内置存储桶的部分。

前端代码方面,访问搜索的旧项目桶模块方式已完全重写,因为它现在使用 Linq To Sitecore。希望这将更容易迁移,并且存储桶仍将以大致相同的方式工作(希望更好,呵呵!)

像 Ruud 一样,我很想听听其他技术来做到这一点。

任何额外的复杂性都可能来自以下方面:1) 您对核心数据库进行了多少自定义 2) 您可能编写了多少新字段类型和 XAML 应用程序

于 2013-05-24T12:18:50.987 回答
3

在这一点上,还没有很好的解决方案。

如果您正在积极使用该模块,则目前无法升级(据我所知)。

如果您根本不使用该模块,您可以删除 Sitecore 中与 ItemBuckets 相关的所有内容。目前这是一项手动工作......(我已经在 6.5 环境中成功完成了这项工作)。

为确保删除所有内容,请打开项目存储桶安装包(ZIP 文件)以查看已安装的项目并手动从 Sitecore 中删除所有这些项目(这将包括模板、字段、字段类型、设置)。

您还可以使用内容编辑器中的搜索来搜索“itembucket”或“item bucket”并通过这种方式查找相关项目。

另一种方法是直接在主数据库和核心数据库中使用 SQL 进行搜索。

一旦您删除了 Sitecore 中的所有内容以及与存储桶相关的配置,请重建链接数据库并运行数据库清理(从控制面板),您应该一切顺利。

这是一项肮脏的工作......如果有人有更好的方法,我很想听听!

于 2013-05-24T11:15:25.880 回答
1

您遇到的问题是项目存储桶代码是针对 Lucene.Net 2.9 编译的,而 Sitecore 7 具有 v3.0.3。

您可以在 web.config 配置/运行时部分中添加一个组装绑定,将旧版本映射到新版本,然后修复您使用过时方法等遇到的任何问题......

您可能还希望按照建议在升级之前删除项目存储桶模块,因为新存储桶模板和项目可能与共享源版本冲突。您至少需要从 bin 文件夹中删除 Item buckets config 和 dll,因为它们也可能发生冲突。

我认为目前还没有一种简单的方法可以做到这一点,否则 Sitecore 已经给出了升级路径。

于 2013-05-24T19:53:02.353 回答