2015-04-03 4 views
3

У меня есть определение сборки TFS с использованием шаблона по умолчанию. Строка завершается самостоятельно, но когда я включаю сценарий пост-развертывания, я получаю следующую ошибку.TFS Build Definition Post Deployment Scripts Ошибка при выполнении сценариев

Exception Message: The directory name is invalid (type Win32Exception) 
Exception Stack Trace: 
Server stack trace: 
    at System.Diagnostics.Process.StartWithCreateProcess(ProcessStartInfo  startInfo) 
    at  Microsoft.TeamFoundation.Build.Workflow.Activities.InvokeProcess.ProcessWrapper. Start() 
    at  Microsoft.TeamFoundation.Build.Workflow.Activities.InvokeProcess.InvokeProcessIn ternal.RunCommand(AsyncState state) 
    at  System.Runtime.Remoting.Messaging.StackBuilderSink._PrivateProcessMessage(IntPtr  md, Object[] args, Object server, Object[]& outArgs) 
    at  System.Runtime.Remoting.Messaging.StackBuilderSink.AsyncProcessMessage(IMessage  msg, IMessageSink replySink) 

Exception rethrown at [0]: 
    at System.Runtime.Remoting.Proxies.RealProxy.EndInvokeHelper(Message  reqMsg, Boolean bProxyCase) 
    at System.Runtime.Remoting.Proxies.RemotingProxy.Invoke(Object NotUsed,  MessageData& msgData) 
    at System.Func`2.EndInvoke(IAsyncResult result) 
    at System.Activities.AsyncCodeActivity`1.System.Activities.IAsyncCodeActivity.FinishExecution(AsyncCodeActivityContext context, IAsyncResult result) 
    at System.Activities.AsyncCodeActivity.CompleteAsyncCodeActivityData.CompleteAsyncC odeActivityWorkItem.Execute(ActivityExecutor executor, BookmarkManager  bookmarkManager) 

Сам сценарий представляет собой сценарий PowerShell, который входит в решение, которое я пытаюсь построить и это только вызывает сообщения записи хоста. (для тестирования на данный момент)

В определении построения есть все значения по умолчанию, выбранные только с измененными аргументами, аргумента post build и post script. Скрипт проверяется на исходное управление в решении.

Это среда POC, поэтому у меня есть все, что установлено на одном сервере, поэтому сервер TFS и агенты сборки находятся на одной машине.

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

+2

Как выглядит вкладка Процесс шаблона процесса сборки? Вы указали путь ** источника управления ** к сценарию? –

+0

И если вы правильно настроили путь управления источником, включили ли вы это в свои сопоставления источников, чтобы убедиться, что файл загружен на ваш сервер сборки? –

+0

Спасибо за ответ @DanielMann. В ProcessTab у меня есть шаблон по умолчанию (TfvcTemplate.12.xaml) 2 Build -> 5.Advanced -> Post Build Script Аргументы: -verbose Post Build Script Path: $/TeamProject/Dev/Solution/DeploymentScripts /PostBuildDeployment.ps1 В закладке Настройки Источник: управления Источник: $/TeamProject/Dev/Решение/DeploymentScripts/PostBuildDeployment.ps1 Сложение Агент: C: \ Projects \ Dev \ Solution \ DeploymentScripts/PostBuildDeployment.ps1 управления Источник : $/TeamProject/Dev/Solution Агент сборки: C: \ Projects \ Dev \ Solution –

ответ

2

(Исходя из тех, кто недавно столкнулся с этой проблемой сам)

Проверьте «Параметры Источника» в определении сборки.

  • Убедитесь, что вы не скрывали путь к своему сценарию. То есть, если у вас есть свой скрипт в utilities/configuration, убедитесь, что вы не скрывали utilities/
  • Ваша папка с вашим агентом не должна использовать $(BuildDir), она должна использовать $(SourceDir). Помните, что это может изменить некоторые пути в вашем скрипте.

Существует, по-видимому, ошибка в последней версии TFS, которая вызывает эту проблему вытягивания волос. Все, что связано с настройкой %WINDIR% в вашем стартовом каталоге Powershell/Cmd и т. Д., Не работает, но это было сделано.

+0

Исправлена ​​ошибка! –

Смежные вопросы