2

在 TFS2010 中使用 Windows 工作流,我设置了一个 PS 脚本以在构建过程结束时运行。按照http://www.ewaldhofman.nl/post/2010/11/09/Part-14-Execute-a-PowerShell-script.aspx中的示例到 T 并且它在构建定义的流程部分中显示正确。但是,无论我将 arg 设置为脚本的 dir 路径,结果总是......

术语“.\DataServiceCpy.ps1”未被识别为 cmdlet、函数、脚本文件或可运行程序的名称。检查名称的拼写,或者如果包含路径,请验证路径是否正确并重试。

我已经尝试了 10 种路径变体。我启用了 PS 脚本在构建服务器上运行,并且可以从 cmd 提示符成功运行脚本。

有什么明显我忽略的吗?

非常感谢...

4

2 回答 2

4

在 TFS 2013(其他人不确定)中存在 RunScript 活动,该活动被放置在工具箱的“团队基础构建活动”中。当我想执行一些自定义脚本时,我更喜欢那个活动。

要使用它,您需要首先创建参数(至少一个用于脚本路径)!要创建参数,请遵循此帖子

在为脚本路径创建参数后,您需要将自己导航到参数选项卡上的“元数据”参数。添加您创建的参数并在“编辑器”字段中添加以下语句:Microsoft.TeamFoundation.Build.Controls.ServerFileBrowserEditor, Microsoft.TeamFoundation.Build.Controls

之后转到 RunScript 活动的“属性”并在 FilePath 中插入以下语句:AdvancedBuildSettings.GetValue(Of String)(" PUT_HERE_YOUR_ARGUMENT_NAME ", String.Empty)

请注意,您需要在最后一条语句中准确插入您为脚本路径创建的参数的名称。

完成后:

  • 检查您的更改;
  • 转到构建定义“流程”选项卡,然后在“构建流程模板”部分按“刷新”按钮;

这些步骤将允许您浏览源代码管理并选择您想要的脚本,而无需提供路径。

如果您不需要插入新活动,则只需修改旧参数即可。

于 2015-05-18T18:39:34.680 回答
1

我使用同一个博客以同样的方式做到了这一点,它对我有用。我看到的唯一区别是我的 Powershell 脚本位于解决方案/项目文件夹中,而在构建定义中,我使用相对路径指定了 powershell 脚本。具有相对路径适用于 ConvertWorkspaceItem 活动。您可能需要检查(输出)在 ConverntWorkspaceItem 活动之后获得的文件路径,以查看这是否是正确的路径。

我希望这会有所帮助。

于 2013-02-26T00:44:42.443 回答