让 VB6 显示哪个组件没有安装设计时许可证

发布于 2024-08-19 04:04:38 字数 423 浏览 3 评论 0原文

我继承了一个我正在尝试“制作”的 VB6 项目。

构建在“制作 EXE”步骤中失败,并出现许可错误:

License information for this component not found. 
You do not have an appropriate license to use this functionality 
in the design environment.

如何找出哪个组件缺少许可证?

该项目有大约15个参考文献;商业和微软之间的混合体。我已经安装了所有明显参考的开发版本/许可证 - 并检查我是否可以成功编译他们的示例应用程序。

其余 13 个奇怪的参考文献中;如何获取有关哪个组件引发许可错误的更多信息?

任何有关如何获得更详细的错误消息的提示/技术将不胜感激!

I've inherited a VB6 project that I'm trying to "Make".

The build fails on the "Making EXE" step with a licensing error:

License information for this component not found. 
You do not have an appropriate license to use this functionality 
in the design environment.

How can I figure out which component is missing the license?

The project has about 15 references; a mixture between commercial and Microsoft. I've installed development versions / licenses for all the obvious references - and checked that I can compile their sample apps successfully.

Of the remaining 13 odd references; how I can get more information as to which component is throwing the licensing error?

Any tips / techniques on how to get a more verbose error message would be greatly appreciated!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

蓝颜夕 2024-08-26 04:04:38

值得尝试两个 Microsoft 修复 - 一个两个 - 对于此错误,以防您遇到已知问题之一。

如果这不起作用,请在 VB6 IDE 中打开每个表单的表单设计器。请注意显示表单时的错误消息框。显示此错误时,IDE 会写入一个日志文件 formname.log,其中提供有关哪个控件导致问题的更多信息。

It's worth trying both the Microsoft fixes - one and two - for this error, in case you've run into one of the known issues.

If that doesn't work, open the form designer for every single form in the VB6 IDE. Look out for an error message box on displaying a form. When this error is displayed, the IDE writes a log file formname.log that gives more information on which control caused the problem.

海拔太高太耀眼 2024-08-26 04:04:38
  1. 使用所有相同的引用创建一个新的空应用程序
  2. 确认您仍然遇到相同的问题
  3. 删除引用的后半部分
  4. 如果您仍然遇到相同的问题,则问题出在剩余的引用上。转至 3
  5. 如果不是,则问题出在您删除的引用上。把它们放回去。删除你放回的一半。转到2。

基本上,只是一个二分搜索,但它实际上是“二分删除”。

  1. Create a new, empty application with all the same references
  2. Confirm that you still have the same problem
  3. Delete the second half of the references
  4. If you still have the same problem, then the problem is with the references which remain. Go to 3
  5. If not, then the problem is with the references you deleted. Put them back. Delete one half of those you put back. Go to 2.

Basically, just a binary search, except it's really "binary delete".

野侃 2024-08-26 04:04:38

所有答案的所有链接都已损坏...并且,我们中的一些人仍在尝试维护或转换旧的 VB6 应用程序(或两者)。

Microsoft 的 Mark Mark Russinovich 的 Process Monitor 是一个有点有用的工具(它直接来自 Microsoft.com,并且已经存在多年)。它允许您监视计算机系统范围内使用的所有资源,并允许您将其过滤到单个资源、进程等。

有用的一点是启动程序,然后单击工具栏上的“过滤器”按钮(Ctrl -L)。从那里,您需要添加一条规则。选择开头的路径,并且应指向值“HKCR\Licenses”。它位于 HKEY_CLASSES_ROOT 部分,其中包含 Active-X 组件许可信息。这些应设置为Include

单击“确定”,然后单击工具栏上的“清除”(Ctrl-X) 以清除所有当前事件以重置状态。与该规则匹配的事件应该已经填充。

然后,调用您的构建。为了减少混乱,我使用了以下命令:

"C:\Program Files (x86)\Microsoft Visual Studio\VB98\vb6.exe" /make <项目文件>; /outdir

编译运行后,构建应该失败并显示相同的消息,但只需打开进程监视器,您就可以看到尝试读取但失败的最后一个键。未找到的 UUID 是许可证应驻留的 UUID。

从那里,您可以:

  1. 如果您的许可证允许,从工作的 PC 复制该值并将其安装到出现故障的 PC 中。
  2. 谷歌那个ID,看看是否有关于如何获取正确的说明
    许可证(例如从安装介质中的 .REG 文件之一进行安装) 以
  3. 其他方式获取并安装许可证

虽然它没有准确告诉您哪个组件对应于该 UUID,但它至少可以让您获取特定的 UUID这是失败的,这比任何其他当前答案在当前状态下所能做的都更进一步。

All of the links of all of the answers are broken... And, some of us are still trying to either maintain or convert old VB6 applications (or both).

A somewhat useful tool was Process Monitor by Mark Mark Russinovich of Microsoft (it is sourced directly off of Microsoft.com and has been around for years). It allows you to monitor all resources used by the computer system wide, and allows you to filter that down to individual resources, processes, etc.

The useful bit is to start the program, and click the "Filter" button from the toolbar (Ctrl-L). From there, you need to add a rule. Select Path that begins with and that should be to the value "HKCR\Licenses". That is in the HKEY_CLASSES_ROOT section, where the Active-X components licensing information is. These should be set to Include.

Click Ok, and then click Clear on the toolbar (Ctrl-X) to clear all current events to reset the state. Events should already be populating that match that rule.

Then, invoke your build. To cut down on clutter, I used the command:

"C:\Program Files (x86)\Microsoft Visual Studio\VB98\vb6.exe" /make <project file> /outdir <exe dest dir>

Once the compile runs, the build should fail with the same message, but simply open the Process Monitor, and you can see that last key that tried to read and failed. The UUID that says not found is the UUID where the license should reside.

From there, you can:

  1. If your license allows, copy that value from a working PC and install it into the failing PC.
  2. Google that ID, to see if there are instructions on how to obtain the correct
    license (such as install it from one of the .REG files from the installation media)
  3. Obtain and install the license some other way

While it doesn't tell you exactly what component corresponds to that UUID, it at least lets you get the specific UUID that is failing, which is further than any of the other current answers can do in their current state.

三生殊途 2024-08-26 04:04:38

试试这个
http://support.microsoft.com/kb/194751/EN-US
它将修复 VB6.0 Design Time License

Try This
http://support.microsoft.com/kb/194751/EN-US
It will fixed VB6.0 Design Time License

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文