Как отладить/диагностировать причину сбоя команды Powershell Copy-Item в сценарии psake?

У меня есть очень простой сценарий, который использует Copy-Item в разделе "Создание задачи" после psake соглашения (и примеры). Сейчас это все, что он делает, пытаясь упростить сценарий для отладки этой проблемы.

Ошибка:

18/07/2011 17:40:57: Произошла ошибка:

Exec: Ошибка при выполнении команды: Copy-Item "$src_dir..\somefolder*.dll" $bin_dir

Я попытался просто вывести пути к файлам через Write-Host, и они выглядят нормально.

Мне нужна помощь, пожалуйста, отладьте это, заставить код сценария (Copy-Item) работать изолированно от psake не является целью.

Сценарий:

Properties {
    $src_dir = Split-Path $psake.build_script_file
    $bin_dir= "$build_dir\..\Binaries\"
}

include .\psake_ext.ps1

Task Build -Depends Clean, Init {
    Write-Host "about to error here:"

    Exec { Copy-Item "$src_dir\..\somefolder\*.dll" $bin_dir }

    Write-Host "do NOT get this far"
    #more similar Exec copy commands, that don't execute
}

Task Clean {    

}

Также обратите внимание:

Этот скрипт работал и только периодически терпел неудачу в самом недавнем прошлом, но теперь, кажется, терпит неудачу более последовательно.

Выполняется через:

.\psake.ps1 "failing-copy-script.ps1" Build

person Nick Josevski    schedule 18.07.2011    source источник
comment
Почему этот вопрос закрыт?? Проголосовал за открытие..   -  person stej    schedule 19.07.2011
comment
Я не использую PSake, но могу поспорить, что он не блокирует сохранение ошибок в $Error.   -  person JasonMArcher    schedule 19.07.2011
comment
Ошибка заключалась в том, что происходило что-то странное с блокировкой файлов, что-то внешнее по отношению к скрипту. Это всегда решалось закрытием нескольких приложений/перезагрузкой системы, поэтому я пометил вопрос для закрытия. Не думал, что вы пытались выключить и снова включить его, это был хороший ответ.   -  person Nick Josevski    schedule 19.07.2011
comment
Часть проблемы заключалась в использовании «Exec {Copy-Item}» — советуем не делать этого. Просто вызовите «Копировать элемент»   -  person Nick Josevski    schedule 19.07.2011
comment
@Dori♦ @Dori - Почему закрыли??   -  person manojlds    schedule 22.07.2011
comment
@manojlds - прочитайте, что он говорит под закрытой причиной ниже.   -  person Dori    schedule 23.07.2011
comment
@Dori♦ @Dori - да, да, но я говорю, что это не так   -  person manojlds    schedule 23.07.2011


Ответы (1)


Итак, на этот вопрос есть ответ, суммирующий комментарии к вопросу и другую информацию:

Если вы столкнулись с этой проблемой, выполните диагностические действия:

  1. "Вы пробовали выключить и снова включить?" - Закройте все, что может иметь отношение к скрипту, включая вашу IDE, даже перезагрузите компьютер.
  2. Попробуйте такой инструмент, как lockhunter.
  3. Избегайте использования команды Exec { bla }, если она не требуется.
  4. Поиск ловушек с помощью Process Explorer
person Sara Gamage    schedule 06.01.2012