2013-10-19 17 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

您的程序如何存在安裝在另一臺計算機上時,通常安裝程序有責任在安裝該程序時安裝所需的依賴項 –