Переменная каталога решений (или чего-то близкого) в TFS 2010 Build - PullRequest
1 голос
/ 24 августа 2011

Я запускаю команду Invoke в конце моей сборки. Я пытаюсь заставить его запустить командный файл.

Но я не хочу жестко кодировать путь к пакетному файлу (в случае, если я перенесу свою сборку на другой сервер сборки).

Мне нужна переменная для рабочего каталога IvokeProcess. В сборке TFS 2008 я бы использовал $(SolutionDir). Но я не могу найти ничего подобного в TFS 2010 Build. (Я попробовал Environment.CurrentDirectory и получил C: \ Windows \ System32

Что я могу сделать, чтобы получить ссылку на путь, по которому идет мое решение (или проект).

Image of InvokeProcess

1 Ответ

2 голосов
/ 25 августа 2011

Я бы не советовал сосредотачиваться на «рабочем каталоге» для типа задачи, которую вы пытаетесь выполнить.

Вы можете открыть шаблон процесса сборки и добавить новый аргумент (type =string, Direction = In) со значением по умолчанию, равным текущему полному пути к вашему пакетному файлу.

Затем установите это в качестве аргумента в вашей активности InvokeProcess.Вот как я вызываю NCover:
enter image description here

В качестве значения по умолчанию я просто установил «C: \ Program Files \ NCover \ NCover.Console.exe»

Теперь каждыйОпределение сборки имеет дополнительный параметр (в разделе «Процесс»), значение по умолчанию - значение, которое в настоящее время имеет смысл.

Если мы перейдем на другой сервер сборки, мне придется просто обновить определения сборки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...