У меня проблема с публикацией службы WCF от CI (Cruise Control) ..
Допустим, у меня есть проект WCF под названием "WCF-A". Я помещаю следующие строки в csproj "WCF-A"
<Target Name="BeforeBuild">
<Message Text="##############Before build##################" Importance="high" />
<RemoveDir Directories="publish" ContinueOnError="true" />
</Target>
<Target Name="AfterBuild">
<Message Text="##############After build##################$(OutputFolder)" Importance="high" />
<MSBuild Projects="$(ProjectName).csproj" Targets="ResolveReferences;_CopyWebApplication" Properties="WebProjectOutputDir=publish\;OutDir=publish\bin\" />
</Target>
Я использую следующее для построения моего сервиса из командной строки. (Обратите внимание, что мы используем CI, но для упрощения моего вопроса я буду использовать командную строку.)
E:\..\Code\>msbuild MyServices.sln /t:Clean;Rebuild
Работает отлично, и все сборки, междоменные файлы xml, svc публикуются в папке "publish".
Проблема возникает, когда я добавляю в файл решения другие службы (назовем их «WCF-B»). [Редактировать] Я добавил те же «BeforeBuild» и «AfterBuild» в WCF-B. [/ Edit] Я ссылаюсь на проект WCF-A из "WCF-B" ... но когда я строю решение с помощью той же команды, что и я, публикация для "WCF-B" работает хорошо. Но междоменный файл и файл svc "WCF-A" больше не развертываются. Только сборка "WCF-A" публикуется в папке "publish \ bin".
Ребята, вы понимаете, почему так происходит? Заранее спасибо.
Редактировать
Я думаю, что наличие "project-reference" создает эту проблему .. Но мне нужно использовать project-reference вместо вызова службы из прокси-класса. Поскольку обе службы будут размещаться на одном и том же сервере, я предпочитаю dll-reference, а не service-call.