14 July 2009 ASP.NET MVC, Build, Build Server, How, TeamCity, Visual Studio, Web Applicaiton Projects Robert Muehsig

imageTeamCity ist ein sehr nette Build- & CI-Lösung. Wenn man allerdings ein Web Application Project in seiner Solution hat (z.B. ein ASP.NET MVC Projekt), wird es wahrscheinlich erstmal nicht bauen, weil ein MSBuild "Target" nicht ausgeführt wird. Mit einem kleinen Trick geht auch dies.

.csproj - MSBuild

Wer mal ein Blick in eine Projektdatei geworfen hat, wird feststellen, dass dies eine XML Datei ist. Was man vor sich sieht ist MSBuild. Dort stehen für das bauen verschiedenste Anweisungen drin.

Web Application Projects

Wenn man ein "Web Application Project" hat, z.B. eine ASP.NET MVC Anwendung oder eine andere ASP.NET Anwendung, dann wird u.a. automatisch ein "Target" in der Projektdatei verlinkt:

  <Import Project="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v9.0\WebApplications\Microsoft.WebApplication.targets" />

TeamCity / Build Server + Web Application Projects

Wenn man diese Projektdatei nun mit bei einem Build Server nutzen kann, muss dieses target auch auf dem Build Server vorhanden sein. Dazu muss man zwei Datein von dem Entwicklerrechner auch auf dem Build Server kopieren:

  • Microsoft.WebApplication.Build.Tasks.Dll
  • Microsoft.WebApplication.targets
  • </ul>

    Beide befinden sich (standardmäßig) unter diesem Pfad:

    C:\Program Files\MSBuild\Microsoft\VisualStudio\v9.0\WebApplications

    Damit nun auch das bauen mit dieser Projektdatei klappt, muss derselbe Pfad mit den beiden Datein auch auf den Build Server vorhanden sein.


Written by Robert Muehsig

Software Developer - from Dresden, Germany, now living & working in Switzerland. Microsoft MVP & Web Geek.
Other Projects: KnowYourStack.com | ExpensiveMeeting | EinKofferVollerReisen.de

If you like the content and want to support me you could buy me a beer or a coffee via Litecoin or Bitcoin - thanks for reading!