我继承了一个我试图“制作”的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个奇数引用中;如何获得有关哪个组件引发许可错误的更多信息?
关于如何获得更详细的错误消息的任何提示/技术,将不胜感激!
基本上,只是一个二进制搜索,只是它实际上是“二进制删除”。
尝试一下http://support.microsoft.com/kb/194751/EN-US它将修复VB6.0设计时间许可证
所有答案的所有链接都已断开...而且,我们中的某些人仍在尝试维护或转换旧的VB6应用程序(或两者)。
[某种有用的工具是Microsoft的Mark Mark Russinovich的Process Monitor(它直接来自Microsoft.com,并且已经存在了很多年)。它允许您监视整个计算机系统使用的所有资源,并允许您将其筛选为单个资源,进程等。
有用的位置是启动程序,然后单击工具栏上的“过滤器”按钮(Ctrl-L)。从那里,您需要添加一条规则。选择Path
,将begins with
设置为“ HKCR \ Licenses”。那是在HKEY_CLASSES_ROOT
部分中的Active-X组件许可信息。这些应设置为Include
。
单击确定,然后单击工具栏上的清除(Ctrl-X)以清除所有当前事件以重置状态。与该规则匹配的事件应该已经在填充。
然后,调用您的构建。为了减少混乱,我使用了命令:
"C:\Program Files (x86)\Microsoft Visual Studio\VB98\vb6.exe" /make <project file> /outdir <exe dest dir>
一旦编译运行,构建应该会失败,并显示相同的消息,只需打开Process Monitor,您就可以看到最后一个试图读取并失败的密钥。显示未找到的UUID是许可证应驻留的UUID。
从那里,您可以:
虽然它不能告诉您确切的组件与该UUID的确切对应关系,但至少可以让您获取发生故障的特定UUID,这比任何其他当前答案在其当前状态下所能做的还要远。