DLL已引用但仍未识别库

时间:2014-05-19 08:02:44

标签: vb.net visual-studio dll visual-studio-2013

首先,我为相当糟糕的头衔道歉;我真的不确定如何描述我在一个体面的头衔中遇到的问题。

无论如何,我最近在Visual Studio 2013中启动了一个项目,并从Excel中的旧项目中引用了一些DLL。一开始就引用了所有内容,但是当我今天启动我的PC时,我注意到MSForms即使被引用也不再被识别。

我尝试重建项目,重新启动项目,启动新项目,将设置重置为默认值,删除设置文件并重新安装Visual Studio,重新启动PC,使用旧设置重新安装Visual Studio,移动DLL并引用它再次尝试以32位模式等运行程序

我几个小时一直在搞乱这个问题,我一直在谷歌搜索这些论坛以寻找可能的解决方案。奇怪的是,这是一个默认的Windows DLL,它没有下载...此 DLL在Excel-VBA中工作得很好,但它拒绝在Visual Studio 2013中工作。< / p>

起初我以为它只是MSForms,但在检查了一些其他引用的DLL后,我注意到Winhttp和其他一些也没有工作,但是.. Imagemagick运行正常,这是第三方库。在这一点上,我很难过,无论如何,我会在下面的区域中抛出一些代码和参考图像。

Dim test As MSForms.DataObject <--- Tells me that it isn't defined

这些是当前在程序中的引用,所以它似乎已被引用,但它似乎没有实际加载。

References

更新

Winhttp似乎现在正在运作,但MSForms仍然被打破。 MSForms在Excel中仍能完美运行,但Visual Studio有问题吗?

2 个答案:

答案 0 :(得分:1)

该COM服务器中声明的命名空间名称不是 MSForms。您的旧项目可能不小心依赖于VBA生成名为&#34; MSForms.exd&#34;的临时类型库。这是一个坏主意,当然这个文件不太可能仍然存在。所以这段代码不能编译。

将其复制/粘贴到源代码文件的顶部以获得最佳效果:

  Imports MSForms = Microsoft.Vbe.Interop.Forms

答案 1 :(得分:0)

您是否尝试删除&#34; MSForms&#34;?

Dim test As DataObject

这对我有用,但我不确定它是否与您正在寻找的组件相同。