0
我录制一个宏用我选择一个项目,从溶液中取出,造成这种代码的解决方案中删除的项目项目在解决方案中,但如果它已被删除,则会导致运行时错误。即使将GetItem
的结果赋值给Object
变量,在调用Select
之前检查Nothing也会导致运行时错误。我怎样才能证明这个宏?问题与Visual Studio宏从
我录制一个宏用我选择一个项目,从溶液中取出,造成这种代码的解决方案中删除的项目项目在解决方案中,但如果它已被删除,则会导致运行时错误。即使将GetItem
的结果赋值给Object
变量,在调用Select
之前检查Nothing也会导致运行时错误。我怎样才能证明这个宏?问题与Visual Studio宏从
你可以把一个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)
)。