2013-09-06 3 views
3

Я не могу заставить Teamcity создать мое приложение WCF RIA + Silverlight 5. Проблема заключается в отсутствии сборок, включенных в команду сборки (csc.exe). Параметры команды csc.exe не включают необходимые сборки:TeamCity WCF RIA отсутствие сборок во время сборки

Microsoft.ServiceModel.DomainServices.Hosting.dll 
Microsoft.ServiceModel.DomainServices.Tools.dll 
System.ServiceModel.DomainServices.EntityFramework.dll 
System.ServiceModel.DomainServices.Hosting.dll 
System.ServiceModel.DomainServices.Hosting.OData.dll 
System.ServiceModel.DomainServices.Server.dll 

Каждая другая сборка включена правильно. В файле .csproj упомянутые сборки перечислены правильно. Файлы присутствуют в системе в соответствующих каталогах.

Может ли кто-нибудь сказать мне, как заставить TeamCity включать эти файлы?

ответ

0

Это, вероятно, не конкретная проблема TeamCity, а проблема CI. Когда вы нажимаете/фиксируете или что когда-либо вы контролируете Source Control, изменения выбираются вашим CI-сервером. Затем он извлекает последний код и пытается его скомпилировать. Если ваш исходный элемент управления не содержит всех правильных сборок, и он не может найти эти сборки либо путем получения из NuGet, либо путем поиска в GAC, код не будет скомпилирован.

Для решения этой проблемы вы можете выполнить одно из трех действий.

  1. Определите необходимые вам сборки, найдите их на своей локальной машине разработки, добавьте их в папку с исходными файлами управления версиями и измените проекты решений, чтобы ссылаться на сборки оттуда.
  2. Если вы используете NuGet увидеть, если узлы, которые вы хотите доступны из NuGet (попробуйте здесь: https://www.nuget.org/packages/RIAServices.Server/)
  3. Установите недостающие сборки в глобальный кэш на сервере CI (и построить агентов)

Если вы не используете NuGet, то 1 - лучший вариант. 3 - худший вариант, потому что ваш CI-сервер теперь загрязнен. Чем больше вы устанавливаете на свой CI, тем грязнее становится. Дело в том, что если у вас есть компоненты на вашем сервере CI, которые позволяют компилировать вашу сборку, вы не будете знать, что, вероятно, будут отсутствовать компоненты при попытке выпустить ваш продукт на живой сервер.