2015-04-03 60 views
3

我有一個使用默認模板的TFS構建定義。構建完成後自行完成,但是當我包含後期部署腳本時,出現以下錯誤。執行腳本時發生TFS構建定義發佈後腳本錯誤

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腳本,包含在我試圖構建的解決方案中,它只調用寫主機消息。 (此時用於測試)

構建定義具有僅在解決方案,後構建參數和後構建腳本路徑更改時選擇的所有缺省值。該腳本被檢入到解決方案中的源代碼控制中。

這是一個POC環境,因此我將所有東西安裝在一臺服務器上,因此TFS服務器和生成代理位於同一臺計算機上。

我已經嘗試了幾種解決方法,但沒有一個似乎是植根於此特定錯誤。任何幫助非常感謝,謝謝。

+2

構建過程模板的Process選項卡是什麼樣的?你是否指定了腳本的**源代碼控制**路徑? – 2015-04-03 19:57:01

+0

如果您已正確映射源控制路徑,是否將它包含在源映射中以確保文件已下載到構建服務器? – 2015-04-05 05:49:26

+0

感謝您的回覆@DanielMann。 在ProcessTab中我有默認模板(TfvcTemplate.12.xaml)2 Build - > 5.Advanced - > Post Build Script Arguments:-verbose Post Build Script Path:$/TeamProject/Dev/Solution/DeploymentScripts /PostBuildDeployment.ps1 在源設置選項卡: 來源控制:$/TeamProject /開發/解決方案/ DeploymentScripts/PostBuildDeployment.ps1 生成代理:C:\項目\開發\解決方案\ DeploymentScripts/PostBuildDeployment.ps1 源代碼控制:$/TeamProject/Dev/Solution 構建代理:C:\ Projects \ Dev \ Solution – 2015-04-06 14:42:37

回答

2

(從別人誰最近就遇到這個問題自己即將)

檢查「源設置」,在構建定義。

  • 確保您沒有隱藏腳本的路徑。也就是說,如果你的腳本在utilities/configuration,請確保你沒有隱身utilities/
  • 你的生成代理文件夾不應該使用$(BuildDir),它應該使用$(SourceDir)。請記住,這可能會改變腳本中的某些路徑。

TFS的最新版本顯然存在一個錯誤,導致這個頭髮拉動問題。所有關於在Powershell/Cmd等的開始目錄中設置%WINDIR%的東西都不起作用,但是這樣做。

+0

修復了我的問題! – 2015-11-30 18:14:32