2011-04-01 122 views
0

我錄製一個宏用我選擇一個項目,從溶液中取出,造成這種代碼的解決方案中刪除的項目項目在解決方案中,但如果它已被刪除,則會導致運行時錯誤。即使將GetItem的結果賦值給Object變量,在調用Select之前檢查Nothing也會導致運行時錯誤。我怎樣才能證明這個宏?問題與Visual Studio宏從

回答

0

你可以把一個Try塊:

Try 
    DTE.ActiveWindow.Object.GetItem("PerfixEMS\Allocations\BDAUploader\perFIXAllocationsFTP").Select(vsUISelectionType.vsUISelectionTypeSelect) 
    DTE.ExecuteCommand("Edit.Delete") 
Catch 
End Try 

更新:我覺得你的宏也不是很安全。它使用活動窗口,該窗口可以是任何窗口。我建議如下:

Try 
    DTE.Solution.Remove(DTE.Solution.Projects.Item("test.vcproj")) 
Catch 
End Try 

項目在此被引用爲其UniqueName屬性。該名稱是相對於解決方案及其文件擴展名的項目路徑。您可以通過在宏調試器下運行宏來瀏覽屬性。項目也可以通過基於1的索引來引用(DTE.Solution.Projects.Item(1))。