【问题标题】:How does TFPT.exe find what workspace to work in?TFPT.exe 如何找到要工作的工作区?
【发布时间】:2023-03-18 07:41:01
【问题描述】:

在命令中使用 tfpt 时,出现错误:

PS D:\Main Line> tfpt uu /noget
Unable to determine the workspace.

我在这里尝试使用 Undo Unchanged 命令,但我也看到其他命令出现此错误。我所在的路径是在我的 TFS 工作区中映射的确切路径。我也试过这个也不起作用

PS D:\Main Line> tfpt uu /recursive /noget 'D:\Main Line'
Unable to determine the workspace.

我以为它只是使用当前路径来解决它,但我无法让它正常工作。有谁知道这是怎么回事?

【问题讨论】:

    标签: tfs-power-tools


    【解决方案1】:

    我遇到了同样的问题,我在页面底部的电动工具附带的一个帮助文件中找到了答案。 (TFPTCommandLineTool.mht)

    错误

    TFPT 错误:无法确定工作区

    使用支持版本控制的命令运行 tfpt 时,您可能会收到以下错误之一:

    Unable to determine the workspace 
    Unable to determine the source control server
    

    解决方案:

    • 从已映射到 Team Foundation 源代码管理的目录中运行 tfpt.exe
    • 使用tf workspaces 命令更新本地工作区缓存。 tf.exe 工具位于 Visual Studio 安装文件夹的子文件夹 Common7\IDE 中。如果您启动 Visual Studio 命令提示符,则可以运行以下命令(这取决于您的 TFS/VisualStudio 版本 - 您应该使用与您正在使用的 TFPT 版本匹配的版本,例如,如果你有 VS2015 的 TFPT,在 VS2015 命令提示符下使用 TF):
      • VS 2008-2013 / TFS 2008:
        • tf workspaces /s:serverURL
      • VS 2010-2013 / TFS 2010(可能还有更高版本):
        • tf workspaces /collection:collectionURL
      • VS 2008 / TFS 2010(可能还有更高版本):
        • tf workspaces /s:collectionURL
    • 如果您最近安装了 Visual Studio 2012,则可能必须将其连接到您在 Visual Studio 2010 中使用的同一 TFS 服务器/集合。

    【讨论】:

    • 起初不相信这一点(从映射目录运行) - 但这是真的!
    • 奇怪...通过解决方案资源管理器中内置的VSCOMMANDS 工具打开命令提示符时,我无法调用 tfpt.exe 。由于某种原因,它不会获取环境变量。通过 run->cmd 打开这就像在正确的目录中的魅力!
    • 我对这个问题的困惑是,我认为我的工作区的顶级目录是 in 工作区,但事实证明它不是。所有工作空间定义都是根目录下的映射目录。例如,将 $/Collection/foo/bar 映射到 c:\workspace\foo\bar,tf.exe 将无法识别 c:\workspace 或 c:\workspace\foo 中的工作区,仅在 c:\workspace\ foo\bar
    • 更新工作区缓存对我来说是个窍门,因为我刚刚使用 Visual Studio 重命名了工作区。
    • +1 表示 Visual Studio 2012 位。我不必在 2012 年映射工作区,但我必须连接到我在 2010 年使用的同一个服务器/集合。只是,哇。
    【解决方案2】:

    使用tf workspaces /s:serverURL时,请确保使用正确的tf.exe
    我遇到了同样的问题并被卡住了,因为我使用了来自:

    tf.exe

    \Program Files (x86)\<b>Microsoft Visual Studio 11.0</b>\Common7\IDE

    而不是来自:

    \Program Files (x86)\<b>Microsoft Visual Studio 10.0</b>\Common7\IDE

    【讨论】:

    • 谢谢!自从我将映射的文件夹移动到不同的位置后,我已经有几个月没有使用 tfpt shell 扩展了。尽一切努力让它继续下去,最后这奏效了。虽然我不知道为什么当我只安装了 VS 12.0 时它在我的 11.0 文件夹中使用 tf.exe。
    • 意识到您可能使用了错误的 tf.exe 解决了我的问题。我工作的公司要求我们在机器上安装 4 个不同版本的 Visual Studio,以构建我们维护的不同产品,所以这很重要。
    【解决方案3】:

    对于 Visual Studio 2017 用户

    在安装了 VS215 和 VS2017 的全新机器安装上尝试运行 tfpt 命令行时,我遇到了同样的问题。在撰写本文时,tfpt 工具的最新版本来自TFS Power Tools 2015。这意味着必须先在 VS2015 中加载本地工作空间映射,然后tfpt 工具才能找到工作空间。

    由于我的团队使用的是 VS2017,所以我只在这个 Visual Studio 版本中做了工作区映射。当我打开 VS2017 开发人员命令提示符以使用此工具时,我收到“无法确定工作区”消息。

    为了解决这个问题,我打开了 VS2015 并将 Team Explorer 连接到 TFS 服务器。它会立即识别在 VS2017 下进行的工作区映射。在此之后,tfpt 工具在 VS2015 和 VS2017 开发人员命令提示符下正常工作。

    【讨论】:

    • 这就是解决方案,太棒了!
    【解决方案4】:

    我尝试了所有这些,但仍然遇到同样的错误。我猜这个错误很笼统,足以代表多个问题..

    重新安装TFPT

    https://visualstudiogallery.msdn.microsoft.com/f017b10c-02b4-4d6d-9845-58a06545627f

    为我解决了这个问题。

    【讨论】:

      【解决方案5】:

      实际上,尽管我相信在某些情况下这些变通办法可能会解决问题,但它们并非在所有情况下都有效。我强烈怀疑这最终指向了 PowerTools 代码中某处可能被视为错误的地方。我这么说的原因是 tf workspace 命令从 VS 命令控制台检测到我机器上的工作区没有问题,但是从具有所有相同路径信息的同一个控制台,TFPT 无论如何都无法在我的笔记本电脑上检测到它我尝试什么。我刚拿到这台笔记本电脑并安装了 VS 2010、2012 和 2013 以及相应的 Power Tools 安装,并指出了目前跨越多个 TFS 2010 和 TFS 2012 实例的一组项目。由于这种多对多关系,我怀疑某处存在不正确的程序集引用,某些因素组合,GAC、路径、环境变量、VS 安装、TFS 存储库。在每个 VS 版本中,我尝试从 VS 2010 命令运行 TFPT 2010 可执行文件,以此类推,并以所有形式尝试上述工作区缓存更新......什么都没有。但是使用我从安装了 VS 2010 和 TFPT 2010 的旧服务器连接的同一个项目,并完美地运行了相同的命令。所以我认为这与你的系统上运行的东西有关,而且在未来我会更加怀疑并排运行不同的版本。

      【讨论】:

      • 我也不能让它运行。
      • 我完全同意。我也有同样的情况,VS的不同版本并不多。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-07-06
      • 2018-11-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-08
      • 2012-07-21
      相关资源
      最近更新 更多