Как TFPT.exe определяет, в какой рабочей области работать?

При использовании 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.

Я думал, что он просто использует текущий путь, чтобы понять это, но я не могу заставить его работать правильно. Кто-нибудь знает, как это работает?


person TheSean    schedule 18.11.2009    source источник


Ответы (5)


Я столкнулся с той же проблемой, я нашел ответ внизу страницы в одном из файлов справки, поставляемых с электроинструментами. (TFPTCommandLineTool.mht)

Ошибки

Ошибка TFPT: невозможно определить рабочую область

При запуске tfpt с помощью команды, работающей с контролем версий, вы можете получить одну из ошибок:

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

Решения:

  • Запустите tfpt.exe из каталога, который уже сопоставлен с системой управления версиями Team Foundation.
  • Update your local workspace cache using the tf workspaces command. The tf.exe tool is available in the subfolder Common7\IDE of your Visual Studio installation folder. If you launch a Visual Studio command prompt, you can then run the following command (which depends on your versions of TFS/VisualStudio - you should use the version that matches version of TFPT you are using, e.g. if you have TFPT for VS2015, use TF from a VS2015 command prompt):
    • VS 2008-2013 / TFS 2008:
      • tf workspaces /s:serverURL
    • VS 2010-2013 / TFS 2010 (and probably later versions as well):
      • tf workspaces /collection:collectionURL
    • VS 2008 / TFS 2010 (and probably later versions as well):
      • tf workspaces /s:collectionURL
  • Если вы недавно установили Visual Studio 2012, возможно, вам придется подключить его к тому же серверу/коллекции TFS, которые вы использовали в Visual Studio 2010.
person BFoust    schedule 08.01.2010
comment
сначала не поверил (запуск из сопоставленного каталога) - но это правда! - person Simon_Weaver; 25.03.2011
comment
странно... при открытии командной строки с помощью инструмента VSCOMMANDS, встроенного в обозреватель решений, я не могу вызвать tfpt .EXE . По какой-то причине он не подхватывает переменные среды. Открытие через run-›cmd работает как шарм, находясь в нужном каталоге! - person felickz; 27.08.2011
comment
Моя путаница в этой проблеме заключалась в том, что я думал о каталоге верхнего уровня моей рабочей области как о находящемся в рабочей области, которой, как оказалось, не было. Все определения рабочей области отображали каталоги ниже корня. например, если $/Collection/foo/bar сопоставлено с c:\workspace\foo\bar, tf.exe не распознает рабочее пространство в c:\workspace или c:\workspace\foo, только в c:\workspace\ фу\бар - person Jeff Youngstrom; 06.12.2011
comment
Обновление кеша рабочей области было для меня хитростью, поскольку я только что переименовал свою рабочую область с помощью Visual Studio. - person Holistic Developer; 12.10.2012
comment
+1 для бита Visual Studio 2012. Мне не нужно было сопоставлять рабочее пространство в 2012 году, но мне нужно было подключиться к тому же серверу/коллекции, который я использовал в 2010 году. Просто вау. - person BrainSlugs83; 24.12.2013
comment
@Felickz, вы используете Visual Studio в качестве администратора? Помните, что у вас есть переменные среды для вашей учетной записи и для всего компьютера. Если вы запустите cmd от имени администратора, вы получите переменные администратора + компьютер, но если вы запустите от имени себя, вы получите свои переменные + компьютер. (Вы можете проверить, настроен ли PATH для учетной записи, а не для компьютера, возможно?) - person BrainSlugs83; 29.03.2014
comment
Обязательно запустите указанную команду, включая коллекцию, которая вызывает обновление. - person TJB; 17.04.2014
comment
Я следовал всем приведенным выше советам, что было важно ... две последние части, которые мешали мне выполнить задачу tfpt, заключались в том, что 1) я должен был находиться в одной из папок рабочей области, а не только корень рабочей области; операция по-прежнему выполняла все папки набора полок, и 2) набор полок был удален из моей исходной рабочей папки, мне пришлось очистить его, выполнив Отмену (или Сохранить в наборе полок с тем же именем, чтобы перезаписать исходный а затем снимите флажок «Сохранить полки», чтобы очистить рабочие папки), в любом случае это сработало. - person SnapJag; 03.12.2015
comment
Это сработало. Исправление сводилось к настройке соединения TFS (и обновлению кеша) в соответствующей версии VS. Я использую символические ссылки повсюду, и рабочее пространство TFS сопоставляется с такими папками, а сообщения в других местах предполагают, что это было связано с использованием символической ссылки. Но, оказывается, это не так. Я использовал TFPT версии 2015 из 2019 Dev Cmd Prmpt, где подключение TFS было настроено по мере необходимости. Но в VS 2015 не было настроено соединение TFS. Когда это было исправлено (рабочие пространства tf vc / collection:‹URL коллекции›), TFPT также начал нормально работать в VS 2019. - person Sumith; 29.07.2020

При использовании tf workspaces /s:serverURL убедитесь, что вы используете правильный tf.exe!
У меня была та же проблема, и я застрял, потому что я использовал tf.exe из:

\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE

а не из:

\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE

person Nitzankin    schedule 29.07.2013
comment
Спасибо! У меня не было расширений оболочки tfpt в течение нескольких месяцев, так как я переместил сопоставленные папки в другое место. пробовал все, чтобы заставить его работать, и, наконец, это сработало. Хотя я не знаю, почему он использует tf.exe в моей папке 11.0, когда у меня установлен только VS 12.0. - person Samih; 05.12.2014
comment
Осознание того, что вы могли использовать неправильный tf.exe, решило мою проблему. Компания, в которой я работаю, требует, чтобы на наших машинах были установлены 4 разные версии Visual Studio для создания различных продуктов, которые мы поддерживаем, так что это очень важно. - person vullnetyy; 26.10.2017

Для пользователей Visual Studio 2017

У меня была такая же проблема при попытке запустить командную строку tfpt на новой машине с установленными VS215 и VS2017. Последняя версия инструмента tfpt на момент написания статьи взята из TFS Power Tools 2015. Это означает, что сопоставление локальной рабочей области должно быть загружено в VS2015, прежде чем инструмент tfpt сможет найти рабочую область.

Поскольку моя команда использует VS2017, я выполнил сопоставление рабочей области только в этой версии Visual Studio. Когда я открыл командную строку разработчика VS2017, чтобы использовать этот инструмент, я получил сообщение «Невозможно определить рабочую область».

Чтобы решить эту проблему, я открыл VS2015 и подключил Team Explorer к серверу TFS. Он сразу распознает сопоставление рабочей области, сделанное в VS2017. После этого инструмент tfpt работает корректно в командных строках разработчика VS2015 и VS2017.

person pogosama    schedule 10.12.2018
comment
Это было решением, отлично! - person Khh; 11.01.2019

Я пробовал все это, и все же я получил ту же ошибку. Думаю, ошибка достаточно общая, чтобы представлять несколько проблем.

переустановка TFPT из

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

исправил проблему для меня.

person Ravi Sankar Raju    schedule 28.05.2016

На самом деле, хотя я считаю, что в некоторых случаях эти обходные пути могут исправить ситуацию, они работают не во всех случаях. И я сильно подозреваю, что в конечном итоге это указывает на то, что можно считать ошибкой где-то в коде PowerTools. Причина, по которой я говорю это, заключается в том, что у команды tf workspace нет проблем с обнаружением рабочего пространства на моей машине из консоли VS Command, но из той же самой консоли со всей той же информацией о пути TFPT не может обнаружить ее на моем ноутбуке независимо от того что я пытаюсь. Я только что получил этот ноутбук и установил VS 2010, 2012 и 2013 вместе с соответствующими установками Power Tools и указал на набор проектов, которые в настоящее время охватывают несколько экземпляров TFS 2010 и TFS 2012. Из-за этой связи «многие ко многим» я подозреваю, что где-то есть неправильная ссылка на сборку, некоторая комбинация факторов, GAC, путь, переменные среды, установки VS, репозитории TFS. В каждой версии VS я пытался запустить исполняемый файл TFPT 2010 из команды VS 2010 и т. д. с оставшимися версиями и пробовал вышеуказанные обновления кеша рабочей области во всех их формах... ничего. Но, используя тот же проект, я подключился со старого сервера с установленными VS 2010 и TFPT 2010 и отлично выполнил ту же команду. Поэтому я думаю, что это связано с тем, что работает в вашей системе, и в будущем я буду гораздо более скептически относиться к одновременному запуску разных версий.

person paulyphonic    schedule 02.08.2014
comment
Я тоже не могу запустить. - person Ievgen Naida; 16.03.2018
comment
Я не мог не согласиться. Я в такой же ситуации, не так много разных версий VS. - person Adam Hardy; 15.05.2018