Ошибка сборки TFS: требуется ссылка - PullRequest
3 голосов
/ 15 апреля 2011

Я использую TFS (я думаю 2008) с VS2010, собирая команду с несколькими решениями. Я получаю сообщение об ошибке "Требуется ссылка на сборку" ... ", содержащую базовый класс" ... ". Добавьте его в свой проект". для одного из решений.

В рассматриваемом проекте действительно есть ссылка на сборку, и когда я собираю это решение самостоятельно в VS, оно работает нормально.

Эта сборка предназначена для ветки разработки, и определение сборки было скопировано из определения сборки для транка. Я пошел и изменил все ссылки на пути с ../Trunk/ .. на ../ Dev / .., но я получаю эту ошибку. Сборка для магистрали работает нормально, и я не думаю, что это конкретное решение имеет какие-либо изменения между версиями магистрали и ветви.

Я все еще довольно плохо знаком с TFS, поэтому кто-то может подсказать, что может быть не так? Спасибо!

EDIT: Я замечаю, что есть также предупреждение об этой сборке: «Ссылочный проект (проект, который он искал выше)» не существует. Я не знаю, почему он говорит об этом, потому что я посмотрел в исходной папке на сервере сборки и этот файл там. Но может ли он пытаться ссылаться на ранее созданную версию файла в магистрали вместо этого? Таким образом, номер версии был бы неправильным ... я дико отключен? Любые идеи приветствуются!

РЕДАКТИРОВАТЬ 2: DLL для ссылочного проекта создается успешно. Однако в buildlog, когда дело доходит до части 'Task "Vbc" сборки, опция / reference не включает эту dll, хотя я добавил прямую ссылку на нее в VS. Я получаю ошибку BC30007 для всех, кто знает msbuild.

РЕДАКТИРОВАТЬ 3: Нашел проблему! Публикация на случай, если у кого-то возникнет такая же проблема в будущем: Просто имена путей для исходных файлов были слишком длинными (ветка dev имеет несколько дополнительных уровней папок, поэтому имена путей были намного длиннее, чем в транке). Досадно, что сообщения об ошибках, которые вы получаете в этом случае, не дают никакого представления о том, в чем заключается настоящая проблема. «Ссылка требуется» действительно.

1 Ответ

2 голосов
/ 15 апреля 2011

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

Просмотрите ваши различные файлы .csproj и проверьте ссылочные пути для библиотек DLL и ссылкипроекты.Убедитесь, что все они указаны относительно строящегося проекта (вы должны увидеть их с большим количеством обозначений ..\. Если вы видите букву диска, у вас есть проблемы.

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

...