VB6引用混乱

时间:2013-09-05 20:26:27

标签: vb.net vb6

我是.NET开发人员。我非常了解引用如何在.NET中工作,即如果要在AssemblyB.classB.MethodB中使用AssemblyA.ClassA.MethodA,则在程序集A中将引用添加到程序集B.

我正在查看一个VB6应用程序,当我打开它时出现错误,即加载期间的错误。请参阅frmMain.log。我打开frmMain.log并说:“2142:控件CommonDialog1的类MSComDlg.CommonDialog不是一个加载的控件类。”我使用WinMerge将故障项目中的源代码与项目的先前版本(没有问题)进行比较。唯一的区别是错误的项目在client.vdp文件中包含以下行:

Reference=*\G{08DBEFD7-6A19-4DCE-A533-5BDBB93683C8}#1.2#0#..\..\..\..\..\Windows\SysWOW64\Comdlg32.oca#Microsoft Common Dialog Control 6.0 (SP3)

删除此行似乎可以解决此问题。为什么这样才能解决问题?

1 个答案:

答案 0 :(得分:1)

我会假设有人在另一台机器上安装了此控件的开发版本,然后设置了对它的引用。当您尝试在计算机上打开项目时,引用将失败。或者卸载了控件。似乎该项目没有使用该引用,并且可以安全地删除它,因为它仍然可以在没有引用的情况下进行编译。

但是,我已经看到vb6实际上在这种情况下从相关表单中删除了未许可的控件。因此,您现在可以编译,因为表单缺少先前存在的组件。您是否检查过frmMain没有更改,包括.frm和.frx文件?