У меня такая же проблема, вот что я пробовал:
У меня есть файл решения в Visual Studio 2010, добавленный в репозиторий Mercurial.
Я настроил FTP-сервер для публикации в корневом каталоге сайта, и публикация из Visual Studio 2010 локально работает хорошо, он подключается и загружает все как положено, и веб-сайт работает.
Теперь я хотел автоматизировать это при каждом отправке в центральный репозиторий Mercurial, и, поскольку я использую TeamCity, я обнаружил, что поле для указания цели сборки, обычно «Перестройка», также может принимать «Опубликовать» , поэтому я указал «Перестроить; Опубликовать» в соответствии с документацией и справкой.
Я подтвердил, что после публикации в Visual Studio и фиксации новых файлов, файл с именем ProjectName.Publish.xml
сопровождает мой файл ProjectName.csproj
, и этот файл загружается в каталог сервера при сборке TeamCity.
Тем не менее, публикация не производится, и когда я проверяю журнал сборки, он говорит:
[19:01:02]: [Project "Test.sln" (Rebuild;Publish target(s)):] Project "Test.UI.Web.csproj" (Publish target(s)):
[19:01:02]: [Project "Test.UI.Web.csproj" (Publish target(s)):] Skipping unpublishable project.
Именно так, как здесь говорится.
Обратите внимание, что это сайт для разработчиков, публикуемый только для того, чтобы мы могли позволить большему количеству людей тестировать изменения, поэтому не вступайте в дискуссию о том, действительно ли это хорошая идея или нет.
Примечание: мне все равно, каким образом файлы публикуются, мне просто нужен один шаг сборки TeamCity, чтобы на самом деле это сделать, поэтому, если у кого-нибудь есть решение, подобное MSBuild, которое просто обходит TeamCity, будет удовлетворен