Сборка прошла успешно, но двоичные файлы нигде не найдены. Зачем? - PullRequest
2 голосов
/ 21 мая 2009

Недавно я изменил файл проекта нашей команды:

<SolutionToBuild Include="$(SolutionRoot)/OurSolution.sln">

до

<SolutionToBuild Include="$(SolutionRoot)/**/*.csproj">

Это было необходимо, потому что у нас есть много проектов, которых нет в файле решения, и для наших целей просто невозможно добавить проекты. Мы хотели бы иметь возможность построить их все за один раз. Таким образом, мы нашли способ рекурсивного построения всех проектов.

Это прекрасно работает, и сборка может быть выполнена без ошибок. Единственная проблема в том, что в папку drop не скопированы двоичные файлы! На самом деле, мы не можем их нигде найти! При сборке из решения двоичные файлы копируются в папку Binaries на агенте сборки. Но ничего нет при строительстве из отдельных проектов.

Итак, мой вопрос, где они? Почему команда build сообщает, что все построено нормально, но тогда копировать нечего. Они даже не находятся в обычной папке bin / Release в каталоге проекта.

Может кто-нибудь помочь мне понять? Я чувствую, что это, вероятно, связано с информацией, содержащейся в файле решения, которого нет в файлах проекта, но я не могу понять это.

Ответы [ 2 ]

4 голосов
/ 22 мая 2009

Я думаю, что элемент SolutionToBuild пуст и ничего не создается. Вы можете проверить по

<Message Text="SolutionToBuild: $(SolutionToBuild)" Importance="high"/>

Затем просмотрите ваш журнал для этого утверждения.

Вы можете пересмотреть свой подход в любом случае. Лучше было бы создать файл MSBuild самостоятельно, то есть BuildAll.proj. В этом файле просто используйте задачу MSBuild , чтобы собрать все проекты. Затем установите этот файл как SolutionToBuild. Это даст вам больше гибкости, когда проекты будут построены. Вы можете добавить шаги до / после сборки для этих проектов или всех из них.

Сайед Ибрагим Хашими

Моя книга: Внутри Microsoft Build Engine: Использование MSBuild и Team Foundation Build

0 голосов
/ 21 мая 2009

Вы просматривали журналы TFSBuild. Если у вас TFS 2008, в журналах есть много хрустящих деталей, которых у TFS 2005 не было.

Еще одна мысль - запустить FileMon и следить за файлами, созданными сервисом TFSBuild.

...