.NET 的许可证编译器 (LC.EXE) 似乎会忽略一台计算机上的 licenses.licx 的内容,但在另一台计算机上则不会。为什么?

StackOverflow https://stackoverflow.com/questions/3048036

背景资料: 我在 VS2008 中设置了一个非常简单的 .NET 解决方案,其中包含足够的代码来在预览窗口中显示 ActiveReports 报表。ActiveReports 组件使用 licenses.licx 决定其是否已获得适当许可的机制。如果找不到有效的许可证密钥,它将在报告预览中显示一条突出的消息,说明: “这是评估副本,[等等]。”

我的问题: 我有两台计算机,都安装了相同版本的VS2008和ActiveReports。我为每次安装都获得了有效的许可证。现在,当我在一台计算机上构建解决方案时,我会得到一个没有评估横幅消息的报告预览,而在另一台计算机上,完全相同的解决方案会编译为将显示评估消息的应用程序。

到目前为止我发现了什么: 使用 反射器.NET 我发现在第二台机器(显示评估消息)上,许可证编译器(LC.EXE)不知何故似乎忽略了 ActiveReports 许可证行 licenses.licx. 。但它不会显示任何错误或警告消息。

⇒ 所以,这个问题仍然存在: 什么情况下会 LC.EXE 决定忽略一行文本 licenses.licx 当它产生输出时 MyApplication.licenses 嵌入资源?


附: 问题是 不是 通过删除解决 licenses.licx 文件,然后通过临时向解决方案添加虚拟报告来重新创建该文件。这个技巧是 经常提到 对于类似的许可问题,但它在这里不起作用。这 licenses.licx 文件内容似乎有效。

附注: 不完全确定这是一个 Stack Overflow 问题还是超级用户问题。

有帮助吗?

解决方案

好的 – 我不能确定,但​​我怀疑这个问题的原因。

我怀疑 LC.EXE 将探测列出的所有控件 licenses.licx 当它编译该文件时。如果在调查期间,任何列出的控制措施确定其未获得适当许可(无论出于何种原因;例如因为许可证确实丢失,或者由于安装损坏),许可证编译器不会将实际的许可证密钥发送到输出资源流。


更新: 几周后,我仍然相信这就是发生的事情。事实证明,许可失败的一台计算机的 ActiveReports 安装已损坏。运行删除实用程序后,ActiveReports 得到了全新安装,并且许可现在可以在两台计算机上使用。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top