5

Tengo una pregunta sobre la precompilación de proyectos de aplicaciones web ASP.NET de TeamCity. Esta es una especie de pregunta de seguimiento a la siguiente hilo:¿Cómo precompilar la aplicación web ASP.NET de TeamCity?

How to deploy after a build with TeamCity?

he terminado de implementar IC de la unidad de pruebas a AutoDeploy usando el hilo por encima y ahora me gustaría complementar el proceso con precompilación el proyecto. El proyecto es bastante grande y quiero evitar demoras innecesarias en el tiempo de respuesta después de una nueva implementación.

Entonces, ¿hay alguna manera de hacer esto desde TeamCity? ¿Como llamar a MSBuild con algunos argumentos específicos?

Respuesta

3

Claro, se puede hacer con un script personalizado de MSBuild. Aquí está el que ejecutamos para precompilar nuestro sitio web ASP.NET MVC 3 (no es que realmente varíe según la versión de ASP.NET).

Primero se ejecuta la acumulación periódica mediante la ejecución de MSBuild contra el archivo de solución, a continuación, se ejecuta este código personalizado MSBuild:

<?xml version="1.0" encoding="utf-8"?> 
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 

    <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> 
    <Import Project="$(MSBuildExtensionsPath)\MSBuildCommunityTasks\MSBuild.Community.Tasks.Targets"/> 

    <PropertyGroup> 
    <WebProject>Web\ChatPast.Web\ChatPast.Web.csproj</WebProject> 
    <WebProjectFolder>Web\ChatPast.Web</WebProjectFolder> 
    <WebPublishFolder>ChatPastWebPublish</WebPublishFolder> 
    </PropertyGroup> 

    <ItemGroup> 
    <ZipFiles Include="$(teamcity_build_workingDir)\src\ChatPast\$(WebPublishFolder)\**\*.*" /> 
    </ItemGroup> 

    <Target Name="Build"> 
     <!-- Compilation of all projects --> 
     <MSBuild Projects="ChatPast.sln" Properties="Configuration=Release"/> 

     <!-- Creating web publish folder. --> 
     <RemoveDir Directories="$(WebPublishFolder)"/> 
     <MakeDir Directories="$(WebPublishFolder)"/> 

     <!-- Running ASP.NET publish --> 
     <MSBuild Projects="$(WebProject)" 
      Targets="ResolveReferences;_CopyWebApplication" 
      Properties="Configuration=Release;WebProjectOutputDir=..\..\$(WebPublishFolder);OutDir=..\..\$(WebPublishFolder)\bin\" /> 

    </Target> 
</Project> 
+0

Grandes, muchas gracias por su ayuda! – Andras

Cuestiones relacionadas