Как заставить TFS 2010 развертывать / публиковать приложение WPF после сборки? - PullRequest
4 голосов
/ 14 ноября 2011

У нас есть приложение WPF, и мы используем TFS 2010 для непрерывной интеграции. Новая сборка запускается при каждой регистрации в системе контроля версий. Все, что я хочу, это публиковать / развертывать этот проект в локальной папке после каждой сборки. Как я могу это сделать?

На самом деле у нас есть еще один сервисный проект WCF, и мне удалось настроить непрерывную интеграцию для этого. Он построен, модульные тесты запущены, а затем успешно развернуты на сервере отладки. Я установил следующие определения сборки:

    Clean Workspace = None
    Copy Outputs to Drop folder = False
    MSBuildArguments =
    /p:DeployOnBuild=True
    /p:DeployTarget=MsDeployPublish
    /p:MSDeployServiceURL=http://<serverIP>
    /p:DeployIISAppPath="/DebugSite"
    /p:CreatePackageOnPublish=True
    /p:MsDeployPublishMethod=InProc (changed from RemoteAgent, didnt bother to try and remove other parameters)
    /p:AllowUntrustedCertificate=True
    /p:UserName=...
    /p:Password=...

Но когда я использую ту же конфигурацию для этого проекта WPF, она компилируется, но ничего не помещается в папку назначения. Это просто пусто. (Кстати, я знаю, что папка назначения правильно определена в IIS, потому что, если я опубликую тот же проект из VS2010, он успешно развернут и может быть просмотрен с помощью IE.)

Я уже давно борюсь с этим. Я нашел много «близких» вопросов и решений, но ни один из них не был полезен для меня. Например:

  • Вдохновленный Какой самый простой способ развернуть приложение WPF? , я добавил действие «CopyDirectory» в рабочий процесс сборки, который скопировал содержимое выходного каталога сборки в мой пункт назначения. Это наполнило выходную папку множеством файлов, которые, очевидно, были всеми продуктами компиляции с .exe, .xbap и всеми .dll, но их нельзя было использовать в качестве приложения WPF. Попытка использовать местоположение отбрасывания закончилась схожим результатом. Когда я пытаюсь просмотреть приложение, я получаю следующую ошибку:

    An exception occurred while downloading the application. Following failure messages were detected:
     - Downloading http://server/DebugSite/MyProject.exe.config.deploy did not succeed.
     - The remote server returned an error: (404) Not Found.
    
  • Также нашел следующий вопрос без ответа: http://social.msdn.microsoft.com/Forums/en-US/tfsbuild/thread/e9abf652-223f-4683-9c07-f3064cd4296f Это почти та же проблема со мной, за исключением того, что я использую IIS 7 и Windows Server 2008.

Итак, как я могу заставить TFS развертывать приложение WPF после сборки?

Ответы [ 2 ]

2 голосов
/ 22 ноября 2011

Я не верю, что шаблон сборки по умолчанию может развертывать приложения с кликом один раз.

Вы можете либо выполнить шаги, описанные в следующем посте, чтобы добавить шаг публикации клика за один раз http://social.msdn.microsoft.com/Forums/da-DK/tfsbuild/thread/8aed666d-a1fd-4cf5-ad44-13d5827e1e58 Хотя я быпредложите добавить пользовательский шаг после шага «Check in Gated ...», чтобы его было легче найти.

Или используйте что-то вроде Tfs Deployer (http://tfsdeployer.codeplex.com/), для настройки которого требуется немного больше, но этогораздо более гибко для развертывания сборок.

Еще одно руководство по клику один раз http://www.edsquared.com/2011/10/27/Deploying+Visual+Studio+2008+ClickOnce+Projects+In+TFS+2010+Build.aspx

0 голосов
/ 24 ноября 2011

Вот решение, которое я нашел до того, как увидел ответ Бетти. У него есть еще несколько свойств, установленных для публикации и файла манифеста, и он немного сложнее. Я предлагаю сначала попробовать ссылку в принятом ответе, потому что ее легко понять и применить.

http://thebasilet.blogspot.com/2010/10/tfs-2010-team-build-clickonce.html

...