Я использую следующий код для доступа к элементу VSS:
Dim sItem As String = "$/MyVssProject/InexistentFile.txt"
Dim oItem As SourceSafeTypeLib.VSSItem = Nothing
Try
oItem = m_oSourceSafe.VSSItem(sItem)
Catch ex As Runtime.InteropServices.COMException
MsgBox(ex.Message, MsgBoxStyle.Exclamation)
Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.Exclamation)
End Try
Проблема, с которой я сталкиваюсь, заключается в том, что я пытаюсь получить экземпляр в файл, который не существует в VSSDB, что приводит кCOMException, который в принципе не будет проблемой (я бы ожидал).Фактически, возникает исключение, но вместо продолжения с кодом перехвата курсор отладки остается на строке «oItem = m_oSourceSafe.VSSItem (sItem)», показывая диалог с заголовком «COMException пересекает собственную / управляемую границу.
Отсюда выполнение не будет продолжаться, пока я не изменю содержимое sItem на существующий файл.
Почему исключение не перехватывается и как я могу его достичь?
Среда: VS2010 с .Net 2.0 на WinXP SP3 x86
Спасибо, товарищи!