Невозможно удалить каталог, когда ярлык «Start In» указывает на этот каталог - PullRequest
0 голосов
/ 13 июня 2019

У меня есть приложение, которое автоматически обновляет другие приложения.Текущий процесс состоит в том, чтобы удалить старые файлы сборки из места установки и затем переместить обновленные файлы сборки в место установки.Затем создается ярлык и помещается в папку «Пуск».

Внезапно он начал вызывать ошибку при попытке удалить старый каталог, содержащий файлы сборки.Было бы сказать, что другой процесс использует это местоположение.По какой-то причине эта ошибка возникает только тогда, когда я запускаю автообновление при первом запуске обновляемого приложения (если пользователь согласен продолжить обновление приложения, приложение закроется и начнется процесс обновления).Если я запускаю приложение setup.exe, которое устанавливает приложение, оно завершается без проблем, только эта проблема связана с автоматическим обновлением.

Я определил, что проблема связана с тем, чтоУ меня есть каталог, который я пытаюсь удалить, в качестве значения Start In для ярлыка меню Пуск, который у меня есть для приложения.Если я удалю это значение, приложение обновится без проблем.Со значением in я получу сообщение об ошибке, говорящее о том, что каталог в настоящее время используется другим процессом.

Я пробовал сценарий, в котором я удаляю ярлык, прежде чем пытаться удалить каталог установки, но я все ещеполучите ошибку.Это не имеет никакого смысла.Единственный способ решить эту проблему - удалить значение местоположения Start In.Однако я хотел бы, чтобы это значение присутствовало в качестве меры предосторожности для запускаемого приложения, чтобы оно не пыталось получить доступ к файлам из местоположения ярлыка.

Есть идеи, как это исправить?

...