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

相關問題