2012-09-11 2 views
1

Я работаю над созданием задачи пользовательской сборки, которая читает xml-файлы и объединяет содержимое в один XML-файл и записывает его в выходной каталог сборки, я использую $ {OutputPath), чтобы получить это.msbuild пользовательская задача не работает в TFS с DirectoryNotFoundException

Задача сборки прекрасно работает при локальном построении, файл xml появляется, как ожидалось.

Однако я добавил новое решение, и, таким образом, файл csproj с переопределенным объектом AfterCompile (я также попробовал AfterBuild) с конкретной пользовательской задачей, необходимой для нашего основного проекта сборки TFS. Сбой сборки TFS теперь из-за того, что моя пользовательская задача выбрасывает исключение:

Не удалось выполнить задачу «QBBuildTask». System.IO.DirectoryNotFoundException: Не удалось найти часть пути пути 'C: * для вывода сборки TFS для этого решения * \ 86 \ Release \ QueryBuilder.xml'.

Обратите внимание, что ** - мое дополнение, чтобы уменьшить размер ошибки для SO.

Похоже, папка выпуска не существует, когда моя задача пытается ее написать.

Мой вопрос: должен ли я получить задание для создания каталога, если он не существует, или я использую неправильную переменную пути вывода для TFSBuild?

Кажется немного странным, что он работает правильно локально, даже если я удаляю выходные папки, прежде чем пытаться построить.

У кого-нибудь есть идеи?

Marlon

ответ

0

Оказывается OutputPath не исправить при использовании TFSBuild, так что мой XML клался где-то случайным образом, теперь использовал условное свойство, используя правильное TFSBuild свойство 'TeamBuildOutDir.

<PropertyGroup> 
    <OutputPathCond Condition=" '$(TeamBuildOutDir)'=='' ">$(OutputPath)</OutputPathCond> 
    <OutputPathCond Condition=" '$(TeamBuildOutDir)'!='' ">$(TeamBuildOutDir)</OutputPathCond> 
</PropertyGroup> 

Это означает, что он работает локально и на сервере.

Думал, что оставлю это на случай, если у кого-то будет аналогичная проблема.

+0

Вы можете попробовать использовать $ (OutDir), это должно быть правильно для VS и TFS –

Смежные вопросы