5

我有一个关于从TeamCity预编译ASP.NET web应用程序项目的问题。这是排序的后续问题以下螺纹:如何从TeamCity预编译ASP.NET Web应用程序?

How to deploy after a build with TeamCity?

我完成了从执行单元测试CI使用上述线程自动部署,现在我想补充与预编译的过程该项目。该项目相当庞大,我希望在新部署之后避免任何不必要的响应时间延迟。

那么,有没有办法从TeamCity做到这一点?就像用一些特定的参数调用MSBuild一样?

回答

3

当然,它可以通过一个自定义的MSBuild脚本完成。下面是我们运行的预编译我们的ASP.NET MVC 3网站的一个(不是说它实际上因ASP.NET版本而异)。

首先,它运行的MSBuild对解决方案文件运行规则的建立,然后运行该自定义的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

大,非常感谢您的帮助! – Andras 2011-05-29 11:17:04

相关问题