2012-07-03 37 views
0

我很喜歡VBasic,但現在我們走了。我想在使用宏的VStudio 2010環境中的解決方案中找到項目引用。該proj將用於添加新項目,爲新文件使用其路徑。如何在樹中找到項目?

在我的解決方案中,使用了幾個虛擬文件夾,當我嘗試遍歷所有樹時,我無法深入樹葉。有人做到了嗎?

後來我嘗試用它的名字收集項目參考:

StartupProj = DTE.Solution.Item("MySpecialProj.uniquext") 

但我得到這個錯誤是

The parameter is incorrect. (Exception from HRESULT:0x80070057 (E:INVALIDARG)) 

谷歌搜索了一下,發現這是正確的做法,但沒有運氣找到爲什麼我得到這個錯誤。 有人幫我嗎?

+0

你能告訴我代碼遍歷所有的樹,不能深入到樹葉? –

回答

1

希望這有助於:

解決方案: 清除出你的項目的臨時框架文件:

對於Windows 7,路徑爲: C:\用戶[名] \ AppData \ Local \ Temp \ Temporary ASP.NET Files \

對於路徑爲「Framework」的64位系統,完整路徑爲: C:\ WINDOWS \ Microsoft.NET \ Framework64 \ v2.0.50727 \ Temporary ASP。 NET Files \

參考:http://www.solutioncottage.com/ShowSolution.aspx?solID=59

注:在對谷歌上的錯誤代碼的搜索通常產生一些偉大的結果;-)

編輯:關於google搜索十六進制錯誤代碼。我建議它更好地使用Microsoft Error Utility。你下載工具,把exe文件放到你的system32文件夾中。然後打開CMD並運行命令err 0x80070057。它會告訴你操作系統頭文件中的錯誤。它很容易google與谷歌這些短信以及十六進制代碼。 ps將exe放在system32文件夾中意味着您可以從命令窗口中的任何目錄運行CMD。

這裏是移植到一個文本文件的輸出結果: err 0x80070057 > C:\NotNullGothjik.txt

# for hex 0x80070057/decimal -2147024809 : 
    COR_E_ARGUMENT            corerror.h  
# MessageText: 
# An argument does not meet the contract of the method. 
    DDERR_INVALIDPARAMS           ddraw.h   
    DIERR_INVALIDPARAM           dinput.h  
    DPERR_INVALIDPARAM           dplay.h   
    DPERR_INVALIDPARAMS           dplay.h   
    DPNERR_INVALIDPARAM           dplay8.h  
    DSERR_INVALIDPARAM           dsound.h  
    DVERR_INVALIDPARAM           dvoice.h  
    ecInvalidParam            ec.h   
    ecInvalidSession            ec.h   
    ecBadBuffer             ec.h   
    MAPI_E_INVALID_PARAMETER          mapicode.h  
    STIERR_INVALID_PARAM           stierr.h  
    E_INVALIDARG             winerror.h  
# One or more arguments are invalid 
# 14 matches found for "0x80070057" 
+0

謝謝Jeremy的幫助! :) 祝你有個好的一天 – Dayan

0

如果你想找出所有選定項目的& DLL引用您可以使用:

Private _applicationObject As DTE2 

Public Sub OnConnection(application As Object, connectMode As ext_ConnectMode, addInInst As Object, ByRef [custom] As Array) 
    _applicationObject = DirectCast(application, DTE2) 
End Sub 

...

For Each project As Project In DirectCast(_applicationObject.ActiveSolutionProjects, Object()) 
    Dim vsProject As VSProject = TryCast(project.[Object], VSProject) 
    If vsProject <> Nothing Then    
     For Each reference As Reference In vsProject.References 
      ' Do cool stuff here 
     Next 
    End If 
Next 

您需要查找幷包含對VSLangProj.dll的引用(例如,在Program Files \ Microsoft Visual Studio 10.0 \ Common7 \ IDE \ PublicAssemblies)

相關問題