【问题标题】:ASP.Net Library name conflict between Ektron app_code and libraryEktron app_code 和库之间的 ASP.Net 库名称冲突
【发布时间】:2013-02-22 05:10:11
【问题描述】:

我有一个 Ektron 8.2 站点,我试图将 Quartz.NET 集成到其中,以便运行一些调度。 Quartz.NET 需要一个库 Common.Logging。该库引入了冲突并破坏了 App_Code/VBCode 中的 Ektron 代码。

例如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 升级时重新完成。这实际上是 2 个库之间的冲突 - Ektron 和 Quartz.Net。我可以在不更改任一库代码的情况下解决此冲突吗?是否有别名库的配置设置?

【问题讨论】:

    标签: webforms quartz.net ektron


    【解决方案1】:

    一个简单的解决方案是使用完整的命名空间 Ektron.Cms.Common.EkEnumeration,而不是依靠包含来自动整理。

    Case Is = Ektron.Cms.Common.EkEnumeration...
    

    不优雅,但应该能让你再次工作。

    【讨论】:

    • 谢谢,但正如问题更新所解释的那样,我宁愿不更改 Ektron 代码,或者至少尽量减少更改。使用完整的命名空间需要对 Ektron 代码进行大量更改。
    • 知道了。没有意识到这是 Ektron 的代码引发了错误。
    【解决方案2】:

    另一种选择是使用namespace alias

    using EkCommon = Ektron.Cms.Common;
    

    所以你的代码看起来像:

    EkCommon.EkEnumeration.FolderType.Community
    

    【讨论】:

    • 谢谢,但正如问题更新所解释的那样,我宁愿不更改 Ektron 代码,或者至少尽量减少更改。使用命名空间别名需要对 Ektron 代码进行大量更改。
    猜你喜欢
    • 2016-01-18
    • 1970-01-01
    • 2015-10-05
    • 1970-01-01
    • 2014-10-03
    • 2013-10-04
    • 2013-12-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多