Это не сообщение .NET, сам компонент перехватывает исключение нарушения доступа. Похоже, это было написано в Delphi, судя по названию исключения. Создание бомбы с собственным кодом на AV обычно не требует большой помощи. Но, конечно, вы можете использовать компонент «неправильно». Вы потушили слишком много кода, чтобы сделать обоснованное предположение. Кроме того, выполнение вызовов в блоке finally после того, как вы поймали все исключения, которые он может вызвать, является плохой идеей.
Заставить его бомбить при выходе из программы, а не после вызова GC.Collect (). Верный признак того, что вам не удалось вызвать ReleaseComObject и обнулить все ссылки на интерфейс. Это обычное дело, лучше оставить это на сборщик мусора, чтобы сделать это правильно. Хотя это окно сообщения будет бомбить поток финализатора. Да, вам, вероятно, понадобится помощь поставщика, если тщательный анализ кода не поможет.