Время от времени, обычно, когда я прекращаю отладку в нашей сборке пользовательского интерфейса, я получаю следующую ошибку, которая требует перезапуска Visual Studio 2008, и это снижает мою производительность:
Ошибка 13 Невозможно скопировать файл
[UI сборка]
в
[выходной каталог].
Процесс не может получить доступ к файлу
[каталог вывода] [сборка интерфейса]
потому что он используется другим
процесс.
После перезапуска я получаю эту ошибку:
Ошибка 1 Файл метаданных [сборка служебной функции в папке RELEASE] не удалось
быть найденным.
Я нахожу это действительно очень странным, потому что мы никогда не используем конфигурацию выпуска.
Я использую VS 2k8 SP1 в Windows Vista.
Я знаю, что это отладчик VS, который не выпускает свой дескриптор файла с помощью утилиты handle (ранее от Sysinternals). Процесс devenv.exe.
Я пытался закрыть и снова открыть решение. Не сработало Работает только полный перезапуск VS2k8.
Я попытался добавить событие перед сборкой, чтобы переместить файл, как описано здесь , но это не работает, потому что Windows не может удалить файл по той же причине, по которой она не может замените его: у него есть открытая ручка.
Я даже пытался вручную закрыть дескриптор с помощью описанного выше утилиты handle.exe, а затем попытался выполнить событие перед сборкой. Visual Studio, очевидно, не знает, что ее дескриптор был закрыт из-за сбоя сборки VS, но handle.exe не показывает никаких дескрипторов открытых файлов для рассматриваемого файла.
Для справки, вот надстройки, которые я запускаю:
- ReSharper 4
- Смарт Пастер 2008
- Typemock Isolator
- TestDriven.NET 2.13.2184
Я также использую элементы управления Developer Express для этого проекта, так что это может быть связано и с этим.