У меня есть проект Visual Studio 2008, который я «обновил» до Visual Studio 2010. После обновления у меня было много проблем с проектом (проект, который был и остается в 2008 году, я мог бы добавить).
Первая проблема заключается в том, что сборка основного исполняемого файла блокирует исполняемый файл, что приводит к сбою при дальнейшем перестроении.Это описано в связанном вопросе: Visual Studio блокирует выходной файл при сборке , где я выбрал обходной путь:
if exist "$(TargetPath).locked" del "$(TargetPath).locked"
if exist "$(TargetPath)" if not exist "$(TargetPath).locked" move "$(TargetPath)" "$(TargetPath).locked"
За исключением того, что этот обходной путь работает точно один раз .После этого заблокированный файл также блокируется devenv.exe и должен быть перемещен.Я работал над этим, добавляя .1.locked, .2.locked и т. Д. Единственный раз, когда блокировки снимаются, поэтому файлы могут быть удалены , находится на выключении devenv.exe (это занимаетчерез несколько секунд после исчезновения интерфейса пользователь может удалить файлы).
Тот факт, что отладчик не нужно использовать, чтобы вызвать эту проблему, указывает на довольно серьезную проблему с системой сборки 2010 года.
Некоторые теории, я думаю, я могу обесценить:
- Антивирус или другие фоновые задачи: если бы это была проблема, казалось бы, 2008 год провалится.Однако, будучи полным, я удалил avast!система полностью безуспешна.
ОБНОВЛЕНИЕ: у этого проекта те же симптомы на компьютере без антивируса и утилиты резервного копирования.Машины в офисе работают под управлением XP SP3 32bit, мой локальный компьютер - Windows 7 64 bit.Похоже, это не зависит от ОС.
- Отладчик блокирует файл: все, что требуется для его воспроизведения, - это повторение процесса сборки без отладки.ProcessExplorer показывает, что devenv.exe является держателем блокировок, а не vshost, и уничтожение vshost.exe все равно не снимает блокировки.
У меня возникла вторичная проблема, которая начинает возникать после того, как файлыполучить блокировку: дизайнеры форм перестают загружаться с ошибкой «не удается найти сборку».Я подозреваю, что они связаны с более ранней проблемой блокировки, так как дизайнеры запускают до сборки, но внесение любых изменений и перестройка вызовет сбой всех дизайнеров с этой ошибкой (даже те, которые у меня быликак текущий вид).
Жалко смотреть форму рядом с белым экраном ошибок только потому, что вы изменили «dummy = 1» на «dummy = 2», где «dummy» абсолютно ничего не делает, кроме как принудительноперекомпиляция в совершенно не связанной сборке.
Обновление: я попробовал еще несколько способов: Включение пошагового выполнения .NET не проверено, поэтому проблема не в этом.Удаление .SUO (пользовательские опции решения) просто работает до тех пор, пока перезапуск обычно устраняет проблему (две сборки: первая, потому что нет заблокированного файла, и вторая, потому что она есть, но она может быть переименована сценарием).
Error 28 Unable to copy file "obj\Debug\PolicyTracker3.exe" to "bin\Debug\PolicyTracker3.exe".
The process cannot access the file 'bin\Debug\PolicyTracker3.exe' because it is being used by another process.