背景信息:--我在VS2008中设置了一个非常简单的.NET解决方案,其中包含的代码刚好足以在预览窗口中显示ActiveReports报告。ActiveReports组件使用licenses.licx机制来决定它是否获得了正确的许可。如果没有找到有效的许可密钥,它将在报告预览中显示一条突出的消息,声明:“这是一个评估副本,等等。”
My的问题:我有两台计算机,都安装了相同版本的VS2008和ActiveReports。我已经为每个安装获得了有效的许可证。现在,当我在一台机器上构建我的解决方案时,我可以在没有评估横幅消息的情况下获得报告预览,而在另一台机器上,完全相同的解决方案编译到一个将显示评估消息的应用程序中。
到目前为止我所发现的:使用Reflector.NET,我发现在第二台机器上(它显示评估消息),许可编译器(LC.EXE)似乎忽略了licenses.licx中的ActiveReports许可行。但它不会显示任何错误或警告信息。
⇒因此,这个问题仍然存在:在什么情况下将决定在生成输出MyApplication.licenses嵌入式资源时忽略来自licenses.licx的一行文本?
P.S.:问题并不是通过删除licenses.licx文件,然后通过向解决方案临时添加一个虚拟报告来重新创建的。对于类似的许可问题,这个技巧是常被提及,但在这里不起作用。licenses.licx文件内容似乎是有效的。
P.P.S.:不完全确定这是堆栈溢出问题还是超级用户的问题。
发布于 2010-06-23 18:33:57
好吧-我不确定,但我怀疑这个问题的原因。
我怀疑LC.EXE在编译该文件时会探测licenses.licx中列出的所有控件。如果在该探测过程中,列出的任何控件确定它没有得到正确的许可(无论出于什么原因;例如,因为许可证确实丢失,或者由于错误的安装),许可证编译器将不会向输出资源流发出实际的许可密钥。
更新:几周后的,我仍然相信事情就是这样发生的。事实证明,只有一台授权失败的机器安装了ActiveReports。在运行了一个删除实用程序之后,ActiveReports获得了新的安装,现在这两台机器上都可以使用许可。
https://stackoverflow.com/questions/3048036
复制相似问题