2013-02-24 88 views
2

在TFS2010中使用Windows Workflow,我設置了一個PS腳本以在構建過程結束時運行。在http://www.ewaldhofman.nl/post/2010/11/09/Part-14-Execute-a-PowerShell-script.aspx後面的例子是一個T,它在構建定義的Process部分顯示正確。但是,無論我將arg設置爲腳本的目錄路徑,結果總是...TFS版本定義中的Powershell腳本

術語'。\ DataServiceCpy.ps1'不被識別爲cmdlet的名稱,腳本文件或可操作程序。檢查名稱的拼寫,或者如果包含路徑,請驗證路徑是否正確,然後重試。

我試過10個變體的路徑。我使PS腳本能夠在構建服務器上運行,並且可以從cmd提示符成功運行腳本。

任何顯而易見的事我都忽略了嗎?

非常感謝...

+0

是outdir中的ps腳本嗎? – allen 2013-02-24 06:07:56

+0

將ps腳本添加到源代碼管理工作流.xaml文件中的一個目錄下。就好像它不被認出。我應該追加與此相關的工作流程xaml的部分嗎? – Mickey 2013-02-24 17:22:33

+0

是的活動和活動的輸入將有所幫助 – allen 2013-02-25 04:04:40

回答

1

我做了同樣的方式使用相同的博客,它爲我工作。我看到的唯一區別是我的Powershell腳本位於解決方案/項目文件夾中,在構建定義中,我使用相對路徑指定了powershell腳本。擁有相對路徑可以很好地適用於ConvertWorkspaceItem活動。您可能需要檢查(輸出)您在ConverntWorkspaceItem活動之後得到的文件路徑,以查看這是否是正確的路徑。

我希望有幫助。

4

在TFS 2013中(對其他人不確定)存在RunScript活動,它放置在Toolbox的「Team Foundation Build Activities」中。當我想執行一些自定義腳本時,我更喜歡這種活動。

要使用這個,你需要先創建參數(至少一個腳本路徑)!要創建參數,請按照此post

爲腳本路徑創建參數後,需要將自己導航到參數選項卡上的「元數據」參數。添加您創建的參數,並在「編輯器」字段中添加以下語句:Microsoft.TeamFoundation.Build.Controls.ServerFileBrowserEditor,Microsoft.TeamFoundation.Build.Controls

之後,轉到RunScript活動的「屬性」並插入FilePath聲明如下:AdvancedBuildSettings.GetValue(串)(「PUT_HERE_YOUR_ARGUMENT_NAME」的String.Empty)

請注意,您需要在最後的陳述,你對腳本路徑創建你的觀點正好名稱插入。

您完成後:

  • 檢查你的變化;
  • 轉到構建定義「Process」選項卡並在「Build process template」部分按下「Refresh」按鈕;

這些步驟將允許您瀏覽源代碼管理,並選擇您想要的腳本而不提供路徑。

如果你不需要插入新的活動,你可以修改舊的參數。

+0

當您創建參數時,應如何指定腳本的路徑? – 2015-05-28 12:01:25

+0

如果你像上面那樣實現,你應該能夠到你的構建模板中的「Process」選項卡並瀏覽源代碼控制中存在的腳本。你卡在哪個部分? – kat1330 2015-05-29 06:55:53

+0

腳本只是不運行,在診斷有隻: 輸入 EnvironmentVariables: 啓用:真 參數: 文件路徑: 輸出 結果:0 – 2015-05-29 08:01:52