views:

915

answers:

4

I'm building an ASP.Net MVC project in TeamCity.

Can I somehow call the Publish target and get the output copied to a folder under IIS? or do I need to write an msbuild script for this?

+1  A: 

I believe you can: Publish sln. Have a look at the targets. Hopefully it will lead you in the right direction.

TWith2Sugars
A: 

I also had a look at this a while ago but could but had no luck with publishing targets, maybe because my IIS resided on a different server. Here is how I did it anyway, hope it helps http://stackoverflow.com/questions/942267/teamcity-deletes-files-on-build have a look at the accepted answer.

Zooking
+4  A: 

Have you tried a Web Deployment Project (WDP)? I have multiple Web Application Projects (WAP) with associated WDPs that work great with TeamCity for deployment scenarios.

I use the sln2008 runner to build my solution (containing both the WAP and the WDP). I've modified the WDP project file (an MSBuild script) to copy the output to a network share:

<Target Name="AfterBuild" Condition=" '$(Configuration)' == 'Deploy' ">
    <!-- copy WDP output to \\build02\wwwroot\Belden.Web.Intranet\ -->
    <ItemGroup>
        <MySourceFiles Include="$(OutputPath)**\*.*" />
    </ItemGroup>
    <Copy SourceFiles="@(MySourceFiles)" DestinationFiles="@(MySourceFiles->'\\build02\wwwroot\Belden.Web.Intranet\$(ProjectDir)%(RecursiveDir)%(Filename)%(Extension)')" />
</Target>

I haven't tried this with MVC/WDP, but I imagine it would work the same ...

jrummell
+1  A: 

Hey there,

I've written a pretty long blog post on this very topic that may interest you:

http://www.diaryofaninja.com/blog/2010/05/09/automated-site-deployments-with-teamcity-deployment-projects-amp-svn

basically:

  • install web deployment projects
  • add web deployment project to your solution
  • setup the solution configuration manager to have a "Deployment" build configuration
  • get team city to use this build switch when running the build
  • have a beer and wonder in glory at your automagical awesomenesss
Doug