Как мне ссылаться на PIA, чтобы моя сборка работала на сервере сборки - PullRequest
0 голосов
/ 05 июня 2009

Я работаю над некоторыми вещами, которые я унаследовал, которые имеют немного неопрятную структуру проекта. Некоторые из проектов ссылаются на Первичную сборку взаимодействия (PIA), которую предполагается установить в GAC. В папке решения есть примечание, в котором говорится (в итоге): «Прежде чем строить этот проект, сначала соберите X, Y и Z и вручную установите их в GAC». Ну, это не очень способствует автоматизации или непрерывной интеграции, не так ли?

Я хочу, чтобы эта сборка работала на сервере сборки TeamCity, агент сборки будет работать на машине, на которой не установлены PIA в глобальном кэше сборок (GAC). Таким образом, сборка не удастся. Я не хочу устанавливать эти PIA на каждом компьютере с агентом сборки, мне нужно, чтобы сборка была автономной, чтобы она могла собираться из чистого исходного кода, от супа до орехов. Так что вопрос двоякий.

  1. Как я могу структурировать сборку так, чтобы она была автономной и не ломалась, если есть какие-либо зависимости от GAC?
  2. Если (1) выполнено успешно, как это повлияет на развертывание на настольных компьютерах конечных пользователей, где должны быть установлены PIA в GAC?

Буду признателен за совет экспертов сообщества Stack Overflow.

1 Ответ

0 голосов
/ 05 июня 2009

Я бы просто добавил шаг сборки, который устанавливает X, Y и Z в GAC, а затем завершил сборку, запустил модульные тесты и т. Д.

После этого он удаляется из GAC.

Единственный способ сделать вашу сборку «автономной» - это остановиться в зависимости от установленных сборок GAC. Это не проблема конфигурации сервера сборки, это проблема архитектуры сборки. Если возможно, сделайте те обычные ссылки на сборки, которые были скопированы в папку bin другого проекта при сборке.

Это значительно упрощает развертывание для конечных пользователей - вы, вероятно, можете воспользоваться преимуществами развертывания Click-Once без установки GAC.

...