我有一个Ektron 8.2站点,我试图将Quartz.NET集成到其中,以便运行一些调度。 Quartz.NET需要一个库Common.Logging。该库引入了冲突并破坏了App_Code / VBCode中的Ektron代码。
E.g。以下代码来自Utilities.vb
Case Is = Common.EkEnumeration.FolderType.Community
imageURL &= "images/ui/icons/folderCommunity.png"
Case Common.EkEnumeration.FolderType.Catalog
imageURL &= "images/ui/icons/folderGreen.png"
现在给出编译时错误 -
App_Code\VBCode\Utilities.vb(703,0): error BC30456: 'EkEnumeration' is not a member of 'Common'.
Common.Logging似乎与Ektron.Cms.Common冲突(Ektron文件有Imports Ektron.Cms
语句)。是否可以指定库的优先级?或命名空间导入的库?
更新 Utilities.vb代码由Ektron编写。我想对此代码进行不做任何更改,或者进行最小的更改,因为任何更改都需要在Ektron升级时重新进行。这实际上是两个库之间的冲突--Ektron和Quartz.Net。我可以在不更改任何一个库的代码的情况下解决此冲突吗?是否存在别名库的配置设置?
答案 0 :(得分:1)
一个简单的解决方案是使用完整的命名空间Ektron.Cms.Common.EkEnumeration,而不是依赖于include来自动排序。
即
Case Is = Ektron.Cms.Common.EkEnumeration...
不优雅,但应该让你再次工作。
答案 1 :(得分:0)
另一种选择是使用namespace alias:
using EkCommon = Ektron.Cms.Common;
所以你的代码看起来像:
EkCommon.EkEnumeration.FolderType.Community