Я собираюсь предположить, что исключение не выдается, и обработчик catch
, который вы не показываете, не делает ничего плохого для целей вашей проблемы.
Я даже пытался использовать метод Quit
объекта
Если нет каких-либо задокументированных советов по этому поводу, я не понимаю, почему бы вам не всегда звонить Quit
, чтобы указать, что вы закончили с приложением.
//Start Excel and get Application object. oXL = new
Excel.Application();
hWnd = oXL.Application.Hwnd;
oXL.Visible = false;
Не имеет значения, что вы изменяете видимость окна, которым вы не владеете, что произойдет, если Excel при выходе закроет предупреждение? Установка Visible
в false
в родительском окне скрывает его от пользователя.
В целях отладки старайтесь не скрывать окно.
Здесь есть некоторая информация здесь о том, что вы можете сделать, чтобы Excel не выдавал предупреждения, которые в противном случае потребовали бы интерактивного внимания. Основная суть этого:
DisplayAlerts = false
AskToUpdateLinks = false
AlertBeforeOverwriting = false
Interactive = false
Visible = false
FeatureInstall = 0 'msoFeatureInstallNone
Вы запускаете приложение в интерактивном сеансе пользователя, верно? Потому что что-либо еще не поддерживается :
Microsoft в настоящее время не рекомендует и не поддерживает
Автоматизация приложений Microsoft Office от любых без присмотра,
неинтерактивное клиентское приложение или компонент (включая ASP,
ASP.NET, DCOM и NT Services), поскольку Office может работать нестабильно
поведение и / или тупик при работе Office в этой среде.