2010-06-28 4 views
2

Я пытаюсь опубликовать XML-файл документации как пост-построенное XSLT-преобразование (используя новый шаг XSLTransformation), но сборка завершилась с ошибкой Unable to execute transformation. Could not find file 'C:\...\documentation.XML'. XML-файл документации отображается нормально на диске после сборка завершена, но на этапе AfterBuild просто нет: <Exec Command="dir $(ProjectDir)$(DocumentationFile)"/> не находит файл, также <Exec Command="$(ProjectDir)$(DocumentationFile)"/>.Почему не @ (DocFileItem) не найден во время задачи MSBuild AfterBuild?

Шаг XslTransformation запускается из задачи с именем AfterBuild и объявляется в зависимости от этапа Compile. По-видимому, я пропускаю что-то в том, как объявляется эта задача, чтобы она не запускалась до завершения XML-файла документации, но я не могу понять, что.

ответ

2

Это, кажется, ошибка в системе IDE сборки, согласно http://social.msdn.microsoft.com/Forums/en-US/msbuild/thread/8a2f4af8-7a57-454f-aa7d-684f3f89acf3: интегрированная среда сборки переименовывает $(DocumentationFile) в .tmp файл во время сборки, и переименовывает его в надлежащей документации XML-файла после сборки является полным , Я не могу себе представить, почему они это сделают, кроме как для личного удовлетворения злого менеджера проекта, который должен теперь смеяться дьявольски, поскольку он читает это ...

0

Он отлично работает для меня, с этой целевой декларации:

<Target Name="AfterBuild"> 
    <Copy SourceFiles="$(ProjectDir)$(DocumentationFile)" 
     DestinationFolder="C:\..\CopyDirectory"/> 
</Target> 

Вы должны попытаться удалить зависимость от Compile шага.

+0

Это на самом деле не работает для меня. Или, вернее, он всегда работает * один раз * сразу после того, как я открою проект. Строка завершается, и файлы копируются. Но когда я строю снова, я получаю ошибку 'Unabled для копирования файла ... Не могу найти файл ...' –