2014-12-16 3 views
2

У меня есть решение Visual Studio 2013 с несколькими проектами в нем. (Исходный код находится в SVN)Teamcity - Как создать решение для нескольких проектов Visual Studio?

Вот структура проекта/решение

d: \ SRC \ Service \ MyService \ MyService.sln

Это выше решение содержит 2 проекта. Путь к файлу для обоих проектов,

  • d: \ SRC \ Service \ MyService \ MyServiceProject \ MyServiceProject.csproj - Для простоты давайте назовем это - Project A
  • d: \ SRC \ Library \ MyLibrary \ MyLibraryProject \ MyLibraryProject.csproj - Для простоты давайте назовем это - проект B

Здесь проект а имеет ссылку на проект в Project B

Я сконфигурировал TeamCity для использования стандартной сборки Visual Studio (т. Е. У меня нет пользовательских сценариев MSBuild) для создания MyService.sln.

Когда я построить проект в TeamCity, сборка терпит неудачу сказав, что не может найти файл .dll, который должен был быть получен проект Б.

Я проверил рабочий каталог Teamcity, и я не см. исходный код проекта B. Что мне здесь не хватает?

+0

Какой у вас корневой каталог cvs, чтобы проверить? похоже, что вы проверяете источник для A, но не для B, т. е. ваш root проверяет \ службу, но не \ library –

+0

Корневой VCS проверяет решение (.sln). Это решение имеет проекты A и Project B, относящиеся к нему. Однако, как вы видите, Project A находится внутри подпапки самого решения, тогда как Project B не находится в подпапке, а в целом по другому пути. В принципе, ссылка на Project B в файле решения - это ** .. \ .. \ Library \ MyLibrary \ MyLibraryProject \ MyLibraryProject.csproj ** –

ответ

1

Похоже, что вы не настроили свои корни vcs правильно в TeamCity. Ваш пример дает структуру папок D: \ SRC \ Service \ MyService \ MyServiceProject \ MyServiceProject.csproj и d: \ SRC \ Library \ MyLibrary \ MyLibraryProject \ MyLibraryProject.csproj

вам нужно сделать одну из две вещи:

Если ваши проекты помогают в какой-то общей папке, находящейся в исходном управлении, вам необходимо настроить свой vcs root для проверки папки, содержащей оба проекта. В приведенном выше примере вы должны проверить \ src \, если это папка в вашем исходном элементе управления.

Если это не папка в вашем исходном элементе управления, вам необходимо настроить 2 корня vcs для вашей конфигурации сборки, чтобы проверить Service и один на checkout Library, тогда источник для обоих проектов будет доступен на сервере сборки ,

+0

Спасибо за ответ @Samholder, которому помогло ваше предложение. Я настроил два разных VCS Roots и убедился, что пути рабочих каталогов соответствуют решению. –

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