果园画廊在果园1.6

时间:2013-02-04 20:02:20

标签: gallery orchardcms orchardcms-1.6

我正按照以下说明重建Orchard画廊: http://orchardgallery.codeplex.com/SourceControl/changeset/view/6a5476676f50#Readme.txt

获取所有最新版本后,Gallery无法编译,因为此错误:

  

错误4名称空间'Orchard.Core'中不存在类型或命名空间名称'Routable'(您是否缺少程序集引用?)   ... \ Orchard.Gallery \ Orchard \ src \ Orchard.Web \ Modules \ Orchard.Gallery \ Models \ PackagePart.cs 5 20 Orchard.Gallery

似乎Routable的东西已从最新的存储库中移除......

我该如何解决这个问题?

由于

编辑: 更加具体: 自从画廊谈论“最新果园”以来,什么是“与画廊合作的最新果园”?

更一般的果园问题: 如果一个人在其模块中使用“Routable”对象(针对果园1.4)并稍后决定升级到1.6,那么如何更改代码以使其模块兼容?

1 个答案:

答案 0 :(得分:2)

从Orchard 1.4开始,旧路线部分分为两个不同的部分。

您可以在此处详细了解: http://www.davidhayden.me/blog/whats-new-in-orchard-1.4 http://www.davidhayden.me/blog/autoroute-custom-patterns-and-route-regeneration-in-orchard-1.4

Gallery已发布1.3版(从那时起从未更新) 因此,如果您想在1.4上运行,您必须更改一些代码以便在1.4或更高版本上进行编译(我现在正在做最新的:1.6)

所以修复是: 添加对Autoroute模块的引用,并删除对Routable的所有命名空间引用 用TitlePart(标题)或AutoroutePart(Slug)替换所有RoutableParts

     public string Title
     {
-        get { return this.As<RoutePart>().Title; }
-        set { this.As<RoutePart>().Title = value; }
+        get { return this.As<TitlePart>().Title; }
+        set { this.As<TitlePart>().Title = value; }
     }

     public string Slug
     {
-        get { return this.As<RoutePart>().Slug; }
-        set { this.As<RoutePart>().Slug = value; }
+        get { return this.As<AutoroutePart>().DisplayAlias; }
+        set { this.As<AutoroutePart>().DisplayAlias = value; }
     }

另一点是IUserEventHandler已扩展且Gallery未实现所有方法。

TaxonomyService改变了一些方法: http://orchardgallery.codeplex.com/SourceControl/network/Forks/akoeplinger/ChangesInContribTaxonomies/contribution/1336