Ссылка на двоичные файлы из одного проекта в другом - PullRequest
4 голосов
/ 04 июня 2010

Вопрос новичка: у меня есть 2 C # проекта в TeamCity, назовите их A и B. A содержит ссылку на B.dll. Б строит нормально. Тем не менее, A не удается построить, потому что он не может найти B: Не удалось найти сборку "B"

Это кажется действительно простым: как мне сообщить моему проекту A на сервере сборки, где найти двоичные файлы из B \ bin \ Release?

Ответы [ 2 ]

13 голосов
/ 22 марта 2011

Вы делаете это путем создания 'Артефактов' и зависимостей артефактов.

Если проект A зависит от проекта B, то вы создаете артефакт для проекта B, используя путь артефакта, например:

bin/Release/B.dll

Затем в проекте A вы устанавливаете зависимость артефакта от B с путем, подобным:

B.dll

И задайте путь к месту назначения, где когда-либо проект A ожидает найти B.dll, например

./Libs

Вы можете делать другие интересные вещи, такие как автоматическое архивирование всех ваших артефактов в zip, используя синтаксис:

bin/Release/*.dll => B.zip

и доступ к ним через:

B.zip!B.dll

Все эти пути относятся к каталогам сборки, что упрощает его, и вам не нужно беспокоиться о папках guid TeamCity или использовать абсолютные пути.

0 голосов
/ 04 июня 2010

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

Обычно вы пишете скрипт сборки, который собирает и A и B в правильном порядке, и просто Teamcity запускает этот скрипт сборки. (Поскольку вы используете C #, MSBuild идеально подходит для этого).

В качестве альтернативы можно было бы скопировать B.dll в известное место (например, c:\currentbuild) в конце сборки, и A всегда ссылается на него отсюда. Вы можете настроить зависимости сборки в Teamcity, чтобы при перестроении B перестраивался и A.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...