Можно дважды проверить, что в диспетчере задач не запущен другой процесс «Microsoft Excel».
Допустим, в какой-то момент в процессе разработки вы запустили программу и открыли книгу с чем-то вроде
xlWorkbook = xlApp.Workbooks.Open(filePath);
Затем по какой-то причине вы столкнулись с исключением и убили программу, не закрывая файл правильно (workbook.Close(..), app.Quit(..)
и т. д.).
Процесс Microsoft Excel все еще выполняется в фоновом режиме и имеет дескриптор файла, который вы хотите редактировать. Таким образом, вы не можете выполнить инструкцию, которая сохраняет файл под тем же именем. Вот почему появляется всплывающее окно.
Этот сценарий взят с точки зрения разработчика, но такое же поведение могло бы произойти на компьютере вашего коллеги, если ваше приложение зависло, не завершив работу должным образом, и перезапустилось.
Кроме того, будьте осторожны, чтобы оператор finally
не всегда мог выполняться , поэтому дважды проверьте, какой сценарий может привести к закрытию вашего приложения без освобождения COM-объекта.