我们在创建AR项目的时候,有时候会莫名其妙遇到授权的问题,今天就给大家来说几种不同的解决方法。
首先,所有报错需要确保正在运行或者打包的机器,本身正常激活了ActiveReport的授权。并且版本对应,我们可以用授权管理器查看
C:\ProgramData\GrapeCity\gclm>gclm.exe
项目报错:lc.exe报错或者页面报错ActiveReport许可证未被找到。
我们用以下方法尝试:
1.手动在项目中添加ActiveReport报表:
右键项目 -> 添加 -> 新建项
左侧找到 Reporting,然后添加对应版本的一个报表即可,这个只是为了添加授权信息,
如果是winfrom组件,我们可以新建From窗体,然后再左侧组件组件框内,添加 ActiveReport的viewer组件(引用GrapeCity.ActiveReports.Viewer.Win.Viewer) 。拖进来即可
如果找不到,尝试删除nuget包,重新添加引用一次。
2.手动添加license文件
遇到这种情况,一般就是我们的license.licx 文件的问题,里面的授权信息和您使用的不匹配。我们根据自己项目中用到的,创建license.licx文件,并引用下面这些
在Properties文件夹下修改license.licx 。添加项有:
- GrapeCity.ActiveReports.SectionReport, GrapeCity.ActiveReports
- GrapeCity.ActiveReports.PageReport, GrapeCity.ActiveReports
- GrapeCity.ActiveReports.Viewer.Win.Viewer, GrapeCity.ActiveReports.Viewer.Win
- GrapeCity.ActiveReports.Viewer.Wpf.Viewer, GrapeCity.ActiveReports.Viewer.Wpf
- GrapeCity.ActiveReports.Export.Pdf.Section.PdfExport, GrapeCity.ActiveReports.Export.Pdf
- GrapeCity.ActiveReports.Web.WebViewer, GrapeCity.ActiveReports.Web
- GrapeCity.ActiveReports.Design.Designer, GrapeCity.ActiveReports.Design.Win
- GrapeCity.ActiveReports.Aspnet.WebViewer, GrapeCity.ActiveReports.Aspnet.Viewer
- GrapeCity.ActiveReports.Aspnet.WebDesigner, GrapeCity.ActiveReports.Aspnet.Designer
复制代码 注意,不用全部添加,根据自己用到的模块添加即可。18之后 如果我们引用的包是 GCCN.ActiveReports.****
需要将里面的改为:
- GrapeCity.ActiveReports.SectionReport, GCCN.ActiveReports
- GrapeCity.ActiveReports.PageReport, GCCN.ActiveReports
- GrapeCity.ActiveReports.Viewer.Win.Viewer, GCCN.ActiveReports.Viewer.Win
- GrapeCity.ActiveReports.Viewer.Wpf.Viewer, GCCN.ActiveReports.Viewer.Wpf
- GrapeCity.ActiveReports.Export.Pdf.Section.PdfExport, GCCN.ActiveReports.Export.Pdf
- GrapeCity.ActiveReports.Web.WebViewer, GCCN.ActiveReports.Web
- GrapeCity.ActiveReports.Design.Designer, GCCN.ActiveReports.Design.Win
- GrapeCity.ActiveReports.Aspnet.WebViewer, GCCN.ActiveReports.Aspnet.Viewer
- GrapeCity.ActiveReports.Aspnet.WebDesigner, GCCN.ActiveReports.Aspnet.Designer
复制代码
3.命令文件添加
如果以上方法都不行,或者都没有跑通,可能确实存在环境比较特殊,导致授权注册的时候一直找不到,可以使用特殊文件对特定项目做专业授权。具体如下:
1.进入如下目录:
- C:\ProgramData\GrapeCity\gclm
复制代码 2.运行命令:
- gclm.exe "{ReportID}" -lc ./.gclicx "{entryAssembly}.{callingAssembly}.dll"
复制代码 以上存在3个变量。
ReportID: 再C:\ProgramData\GrapeCity 这一层会有一个UUID的文件夹,进入文件夹,用文本打开 .info 文件,就可以看到是哪个产品,找到自己对应版本的产品,返回复制UUID,这个就是命令中的 ReportID
entryAssembly和callingAssembly再程序中可以用如下代码获取:
- Assembly entryAssembly = Assembly.GetEntryAssembly();
- Console.WriteLine("Entry Assembly Name: " + entryAssembly.GetName().Name);
- // 获取调用程序集的名称
- Assembly callingAssembly = Assembly.GetCallingAssembly();
- Console.WriteLine("Calling Assembly Name: " + callingAssembly.GetName().Name);
复制代码 命令执行后,得到一个.gclicx文件
3.复制.gclicx文件,然后将其粘贴到您的应用程序中(根目录下即可或者properties目录)。
4.修改文件属性为 嵌入的资源
5.重建解决方案并运行项目。
此时,您的项目运行授权即可通过。
|