【问题标题】:Copy files from MSBuild folder to Output folder using Powershell使用 Powershell 将文件从 MSBuild 文件夹复制到 Output 文件夹
【发布时间】:2015-09-20 06:50:37
【问题描述】:

使用 TFS 2013 并且我有文件显示在 c:\builds 位置,一旦构建完成,需要将这些文件复制到构建输出文件夹中。想在使用TfvcTemplate.12 时使用powershell 来完成此操作。

以下是我能找到的最接近的参考,但我不熟悉 powershell,也不熟悉如何将 $SrcDir$DestDir 指向 c:\builds 文件夹,因为它永远不会相同或输出文件夹,因为它也发生了变化。

http://www.codeproject.com/Tips/642297/File-copy-using-Microsoft-Powershell

【问题讨论】:

  • 如果“输出文件夹”是指保存构建结果的网络共享,则该操作由构建工作流模板在最后完成。你在使用工作流吗?您没有提到使用旧版模板。
  • 不,我使用的是上面列出的 TFS 2013 的默认模板。是的,您指定的构建输出文件夹会根据您在构建定义中指定的版本进行版本控制。

标签: powershell tfs msbuild


【解决方案1】:

我在 TeamBuild 2012(自定义)工作流程中使用了相当多的 PowerShell。您需要创建一个 InvokeProcess 活动。将其设置为启动 PowerShell.exe。我传入如下参数:

"-NoProfile -NonInteractive -Command ""& {" + SourcesDirectory + "\Common\Build\AuthenticodeSignFiles.ps1 '" + outputDirectory + "'" + " -Verbose:" + PowerShellVerboseSwitchValue + "}"""

TeamBuild 定义了可以传递给 PowerShell 的 SourcesDirectory、BinariesDirectory 和 DropLocation。 “配置的编译和测试”活动定义了变量outputDirectory,它会针对它构建的每个配置|平台组合进行更新。

【讨论】:

  • 我已经运行了 powershell 脚本来对程序集进行版本控制,但我没有启动 Powershell.exe 的 InvokeProcess 活动。
  • 那你是如何从 TeamBuild 调用 PowerShell.exe 的呢?但是,您正在这样做,您可以传入 TeamBuild 定义的变量。其中包括 SourcesDirectory 和 BinariesDirectory 等变量。这些变量包含对当前构建正确的路径。
  • 我研究了变量的传入。 MSBuild 的较新模板允许您使用脚本而无需自定义构建模板。
  • Keith,2013 版默认模板已内置 PowerShell 调用位置,用于构建前/后构建和前/后测试。
  • 啊,我们仍在使用 TFS 2012。猜想我们错过了该功能。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-24
  • 2019-03-20
  • 2013-05-21
  • 2017-03-31
  • 2010-09-12
  • 1970-01-01
相关资源
最近更新 更多