2017-02-14 21 views
0

Я работаю над настройкой определения сборки TFS 2015. Когда я делаю сборку локального решения, все необходимые библиотеки и ссылки создаются в моем пути к bin, но когда сборка выполняется на агенте сборки, мне не хватает кучи ссылок. Я корректировал локальные настройки копирования и удалял/повторно добавлял ссылки, но не повезло с тем, что определение сборки создало все необходимые.Почему моя сборка TFS не создает необходимые библиотеки?

Если я редактирую один из проектов в моем решении я пытаюсь построить вот пример того, что у меня есть:

<Reference Include="WebArchitecture.Services.Common"> 
    <HintPath>..\..\..\Libraries\WebArchitecture.Services.Common.dll</HintPath> 
    <Private>True</Private> 
</Reference> 

ли этот частный тег вызывает ссылку не будет построен на сервере сборки Или что-то еще? Решение находится в папке C: \ Users \ AKS \ Repositories \ Git \ CUIA \ source \, а библиотеки расположены в папке C: \ Users \ AKS \ Repositories \ Git \ CUIA \ Libraries.

Добавление дополнительной информации на основе комментария Патрика: Я считаю, что мы работаем на XAML. Папка bin была проверена в нашем репозитории Git, поэтому все необходимые файлы должны быть там.

+0

Какая система сборки вы используете старый XAML или новый Vnext? Кроме того, ваша проверка в папке bin, включая DLL в исходном элементе управления, или копирование/развертывание их в агенте сборки? Кажется, в физических папках агента сборки нет соответствующих DLL. Вы должны убедиться, что среда агента сборки так же, как и локальная. –

ответ

0

Прежде всего, проверьте, правильно ли вы ссылаетесь на DLL, используя правильные относительные пути.

Затем следующий шаг - убедиться, что файлы сбрасываются в рабочее пространство агента сборки/сервера. Вы можете проверить это, просто изучив папку сборки на сервере. Если их там нет, есть проблема с сопоставлениями рабочего пространства, которые определяют папки, которые нужно получить при начале сборки.

Еще один способ проверить: вручную создать свое решение на агенте/сервере. Если локальная сборка на сервере успешна, проблема может быть связана с вашими настройками определения сборки, такими как сопоставление рабочей папки, вам понадобится дополнительная диагностическая информация.


Update:

Кажется, ваш вопрос бен папка не создается в сервере сборки. Если DLL существует. В качестве временного решения можно использовать CopyDirectory активность в шаблоне процесса сборки, чтобы скопировать папку Bin, чтобы построить машину, пожалуйста, обратитесь к примеру в этом блоге: TFS Team Build 2010: How to place the build output to a fixed location

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

+0

Я установил для него путь к файлу вместо сервера TFS, я изменил его на сервер в своем тестировании, и когда я это сделал, я проверил артефакты и все еще не смог увидеть папку bin. Я должен отметить, что я знаю, что папка bin, в которую была проверена, является плохой практикой, поэтому я ее удалил. Локально он по-прежнему строит то, что ему нужно, но сервер больше не создает папку bin или файлы, необходимые. Являются ли эти сопоставления рабочего пространства чем-то связанным с моим решением или с агентом сборки? Другие люди используют один и тот же агент сборки без проблем, поэтому я не уверен, что проверить на моем собственном решении, чтобы решить эту проблему. – Vistance

+0

Если другие используют один и тот же агент сборки без проблем. Возможно, что-то не так с вашим определением сборки, например с отображением рабочей области, как вы упомянули. Вы должны убедиться, что ваши локальные папки bin сопоставлены с сервером. Кроме того, как вы сказали, проверка в папке bin - это плохая практика, которая вызывает некоторые проблемы с построением ссылок, такие как ваши. На данный момент мы часто предлагаем разработчикам попытаться создать собственный пакет Nuget для обработки этой ситуации и восстановить пакет nuget на сервере сборки, который также сделает среду чистой. Вы также можете попробовать с этим. –

+0

Как я могу обеспечить, чтобы мои локальные папки bin сопоставлялись с сервером? Нужно ли мне проверять пустую папку bin в моем репо, чтобы она могла размещать там файлы? – Vistance