msbuild - 确定构建服务器上是否存在工作区

标签 msbuild tfsbuild msbuild-task

是否可以使用tf.exe确定给定本地路径的服务器上是否存在工作区?

这可以使用 TFS API 来完成,但这需要我在使用它之前构建任务源代码,这是不可能的,因为我还没有工作区。将二进制文件 checkin 源代码管理不是一种选择。

有什么想法吗?

最佳答案

如果您运行在本地目录中传递的tf.exe workfold命令,如果文件夹未映射,它将返回错误,或者将返回工作区信息。您可以(以一种 hacky 的方式)通过将 stderr 重定向到文本文件来确定是否发生错误,然后检查该文件是否为空。例如:

tf.exe workfold c:\some\mapping\folder\path 2> error.txt

您还可以检查命令的退出代码。根据研究,如果出现错误,退出代码似乎会设置为 100。不确定您可以在任务中执行什么操作,但在 CMD 文件中您可以检查 ERRORLEVEL

要查看实际效果,请尝试:

tf.exe workfold "C:\program files" 2> error.txt
echo %ERRORLEVEL%

关于msbuild - 确定构建服务器上是否存在工作区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5700816/

相关文章:

c# - 自定义 MSBuild 任务发出警告

tfs - 如何使用 WMSVC 服务和 NTLM 身份验证在 Team Build 2010 中使用 MSDeploy 进行部署?

powershell - 如何获取 tfs 构建服务器上的当前变更集 ID?

visual-studio - 如何在 MSBuild 中调用 Web Essentials 任务?

tfs - 在 TFS 构建中首次运行后跳过自定义目标

MSBuild ClickOnce 错误 : "Deployment and application do not have matching security zones"

c# - TransformXml 任务在 linux 上使用 mono 通过 msbuild 失败

tfs - 您在构建自动化过程中做了哪些有趣而有趣的事情?

tfs 2019 管道构建触发器仅在发生新 checkin 时触发

c# - 构建任务的外部文件