Вывод программы перенаправляется в файл, но файл остается заблокированным в течение некоторого времени после завершения программы
Эта проблема
Когда я запускаю следующую команду в командной строке:
devenv /? > out.txt & del out.txt
Я получаю следующую ошибку:
The process cannot access the file because it is being used by another process.
Это минимальное повторное решение проблемы в гораздо большем сценарии сборки .
Об этой проблеме сообщили несколько пользователей сценария сборки. У некоторых пользователей всегда есть проблема, у некоторых - нет.
Что такое devenv
?
devenv
ссылается на devenv.com
небольшую внешнюю утилиту, которая вызывает devenv.exe
основной исполняемый файл Visual Studio IDE. Подробнее в статье MSDN Командная строка Devenv .
Когда devenv.exe
вызывается без аргументов, он открывает IDE Visual Studio. Когда devenv.exe
вызывается с правильными аргументами, он может создавать программы в командной строке. В обоих случаях devenv.exe
возвращается сразу.
Тем не менее, devenv.com
будет ждать, пока devenv.exe
не почти закончена, но это, кажется, немного прекратить раньше, и devenv.exe
до сих пор работает и outputing сообщения, вызывает ошибку.
Вопрос
Как я могу надежно предотвратить возникновение этой ошибки? Добавление паузы (например, timeout 2
сразу после вызова) devenv
- это все, о чем я могу думать прямо сейчас.
Может быть, есть способ обернуть devenv
команду во что-то, что возвращает управление только после полного завершения команды?
Среда
- Microsoft Windows версия 10.0.17134.165
- Microsoft Visual Studio 2017 версия 15.0.27703.2035
РЕДАКТИРОВАТЬ: проблема возникает, даже если команды запускаются из пакетного сценария (в соответствии с https://superuser.com/a/908744/404097, это похоже на соответствующие детали.)
0 ответов на вопрос
Похожие вопросы
-
12
Почему папка / winsxs становится такой большой и ее можно уменьшить?
-
2
Повышенные привилегии для запуска приложений в Windows?
-
14
PDF Viewer в Windows
-
-
7
Какие службы Windows можно безопасно отключить?
-
8
Firefox PDF плагин для просмотра PDF в браузере на Windows
-
1
Windows теряет макет экрана
-
1
Есть ли способ предотвратить установку / обновление, чтобы засорять мой жесткий диск загадочными пап...
-
1
Как я могу получить доступ к принтеру Windows Vista из Ubuntu по сети?
-
6
Просмотр журнала в Windows
-
3
Фоновая проблема Windows с двумя экранами