Проблема
Я портирую сборку на более новую версию CC.Net (с 1.4.4 до самой последней версии 1.6).Ранее сборка смешивала теги <msbuild />
с тегами <exec />
, которые вызывают командные файлы с командами tf.exe
.
Сборка должна была полагаться на версию исходного кода, совпадающую между msbuild
иtf.exe
, потому что теперь я получаю сообщение об ошибке tf.exe
:
Невозможно определить рабочее пространство.
Когда я запускаю командную строку, сЗапуск от имени того же пользователя, которого использует служба, и вызов той же команды, что и пакетный файл (из того же каталога), я получаю ту же ошибку.
Однако, если я запускаю Visual Studio 2010 в командной строке, с runas и вызовом этой команды (из того же каталога), я не получаю сообщение об ошибке.
Это также имеет смысл, поскольку файл %UserProfile%\Local Settings\Application Data\Microsoft\Team Foundation\3.0\Cache\VersionControl.config
имеет отображение рабочей области, но...\1.0\Cache\VersionControl.config
файла нет.
Решение, которое я хотел бы попробовать
Я не могу просто изменить PATH
для командного файла, потому что онна самом деле нужно построить против старой версии VisualStudio, из-за лицензирования.
Думаю, я мог бы решить эту проблему, указав версию TFS / msbuild, используемую с тегом <msbuild />
.Но я не уверен, как это сделать.Я думаю, что это будет какая-то конфигурация сервера, но я ничего не нашел в документации.
Мой вопрос: как мне указать версию TFS, которую круиз-контроль использует для <msbuild />
теги?Или есть другой способ решить эту проблему?