2013-10-19 18 views
2

我需要检查项目中的所有引用是否存在以避免可能的错误,但是我无法在VB.NET中找到任何方法。我能做到这一点在VBA这样的:如何检查VB.NET中缺少的引用?

Dim vbProj As VBProject 
Dim chkRef As Reference 

Set vbProj = ThisWorkbook.VBProject 

For Each chkRef In vbProj.References 
    If chkRef.IsBroken Then 
     Debug.Print chkRef.Name " reference doesn't exist!" 
    End If 
Next 

更具体地讲,该项目引用另一个程序(酒保说),我需要能够打开文件,并使用VB打印出来。

我已经将它安装在我的电脑上,但是如果别人在没有安装Bartender的情况下运行我的项目,它会在声明对象变量时抛出未知数据类型的异常。

如何在VB.NET中完成此操作?

+0

宏在VS2010中消失了,您需要创建一个[加载项](http://msdn.microsoft.com/en-us/library/vstudio/80493a3w%28v=vs.100%29。 ASPX)。 –

+0

@HansPassant:宏在VS2010中仍然存在,不再在VS2012中。 – Styxxy

+0

你是对的,想知道他为什么问。 –

回答

2

尝试启用Option Strict On它会阻止后期绑定,这会阻止您的代码编译,除非所有引用都存在。

从以上链接:

隐范围限制数据类型转换到仅扩大转换,不允许后期绑定,并禁止导致Object类型隐式类型。

此外,如果您单击您的解决方案资源管理器中的所有文件,您将看到一个参考部分,如果你看看那里。任何引用旁边带有感叹号的引用都会丢失。

+0

感谢您的快速响应,但如果他们没有我提到的程序,这将无法在别人的计算机上工作,这就是为什么我需要检查参考是否存在于运行时... –

+1

您的程序如何存在安装在另一台计算机上时,通常安装程序有责任在安装该程序时安装所需的依赖项 –