【问题标题】:LicenseException for SectionReports, ActiveReports 7.0.6158.0SectionReports、ActiveReports 7.0.6158.0 的 LicenseException
【发布时间】:2013-03-04 19:58:52
【问题描述】:

在我正在开发的一个 MVC 应用程序中,我们最近开始使用 ActiveReports 7 来满足我们生成报告的需求。在我的本地机器上,一切正常。然而,当我们部署到我们的开发服务器进行团队级测试时,我们会得到一个LicenseException:

License for the SectionReport cannot be found.

我们按照用户指南here 尝试了不同的方法来解决问题。

我们做了什么:

  • 确保 licenses.licx 文件引用了程序集,并且我们的项目正在构建正确的 ActiveReports 7 程序集并被我们的项目引用。就目前而言,licenses.licx 文件看起来像这样(没有换行符):

GrapeCity.ActiveReports.SectionReport, GrapeCity.ActiveReports.v7, Version=7.0.6158.0, Culture=neutral, PublicKeyToken=cc4967777c49a3ff
GrapeCity.ActiveReports.Export.Pdf.Section.PdfExport, GrapeCity.ActiveReports.Export.Pdf.v7, Version=7.0.6158.0, Culture=neutral, PublicKeyToken=cc4967777c49a3ff

  • 由于这是一个 MVC Web 项目,因此使用 AR7 附带的 Assembly License Generator 创建了一个 [Assembly].Web.License.dll 库,我们正在使用 /lib/ 目录中的项目构建它在解决方案级别。此更改对许可例外没有影响。

  • 使用 Web 密钥生成器为 App.config 文件创建密钥。此更改对许可例外没有影响。

我们没有做的事情:

  • 创建了一些 Web 表单,并创建了一个 App_License.dll 库,该库与我们的项目一起构建。我们没有这样做的原因是我们没有为我们的报告使用 Web 控件,我们甚至没有使用 GrapeCity.ActiveReports.Web 程序集,并且错误不是来自该库中的任何类(这是合乎逻辑的,看看我们如何不使用它。)

所有这一切的唯一值得注意的细节是修改 licenses.licx 文件具有早期影响,因为我们在另一个组件上有类似的许可证例外;确保 licenses.licx 具有正确的详细信息,确保其他组件不再在我们的应用程序中抛出 LicenseExceptions。我试探性地认为,也许我的 licenses.licx 文件仍然缺少使该应用正常运行所需的内容。

我能想到的唯一要做的就是推荐我们作为开发人员的服务器的主要许可,但这种可能性已经出现,我们被要求采取的方向是尽可能避免这条路线可能的。我认为这是可能的,因为我遇到过类似的帖子,这些帖子涉及遵循上述用户指南中的步骤的人,并且可能能够解决问题。然而,对于我的团队来说,这些步骤不起作用。

问题:我错过了什么?

【问题讨论】:

    标签: model-view-controller dll licensing activereports


    【解决方案1】:

    按照您的做法使用组装许可证生成器应该可以解决问题。此外,请确保您使用的是最新版本的 AR7,如 this post on the ActiveReports 7 Support Forums 所述,已对某些更高版本的 ActiveReports 7 进行了修复,以纠正在这种情况下的许可问题。具体来说,之前引用的帖子中给出的步骤表明,按照以下步骤使用更新版本纠正了其他人的问题:

    • 从类似于“C:\Program Files\Common Files\ComponentOne\ActiveReports Developer 7\”ApplicationLicenseGenerator.exe”的位置运行程序“ApplicationLicenseGenerator.exe”(以管理员身份)
    • 浏览到已编译的 ActiveReports DLL。
    • 按下“生成”按钮。
    • 这会生成一个类似于 yourclasslibraryname.dll.GrapeCity.Licenses.dll 的附属程序集
    • 将 DLL 放在 Web 项目的 bin 文件夹中和/或在 Web 服务项目中引用生成的 DLL。

    【讨论】:

    • 我还发现我的Web服务项目中必须引用这个生成的DLL。
    • 我的报告在一个类库中,因此它们可以由 MVC 应用程序和 WinForms 应用程序共享。我发现我必须为类库生成许可证,但我必须在 MVC 应用程序和 WinForms 应用程序中引用生成的许可证 DLL,才能让 Visual Studio 在构建期间包含该文件。
    • @CharlieKilian 感谢您的解释。我认为这是最安全的方法。或者,我认为您也可以将任何报告添加到 Winforms 项目并许可 winforms 项目本身来处理这个问题。但是,对于您正在创建的应用程序由另一个进程托管的 MVC 和类似项目,通常许可是挑剔的,最好的方法是使用 ActiveReports 中包含的 GrapeCity/ComponentOne 工具许可 DLL。
    【解决方案2】:

    回答:对于非授权用户,必须将[Assembly].GrapeCity.License.dll添加到web项目中作为参考!

    Licenses.licx 从构建的角度来看很重要。但是许可证文件没有丢失任何内容。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-12-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-12-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多