用MSBuild自動發布Silverlight xap

作者: ITLOVER  來源: 博客園  發布時間: 2010-09-06 12:48  閱讀: 911 次  推薦: 0   原文鏈接   [收藏]  

      最近剛做完一個大型Silverlight戰略性項目。在這個項目中,我主要負責了一個核心模塊的設計和開發工作。一邊寫復雜的界面導航,一邊寫服務的核心代碼,同時還要負責安排身邊其他同事的工作,并Review他們的代碼。另外,還要負責發布項目到測試環境,可把我累壞了,不過,讓我也學會了很多東西,一是學會了抗壓,二是學會了如何帶身邊的人。:)

      當初,發布項目到測試環境,全是手工操作。效率不高,而且很枯燥。當時是沒辦法,來不及寫工具了。后來測試后期,我閑下來了,就想通過自動化的方式來發布項目到測試環境。因此有了對MSBuild的第一個應用。

      下面的過程可以發布Silverlight xap到測試環境:

      第一步:編寫Project.proj文件,描述你要做那些編譯任務。

<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"
         DefaultTargets="Main">
    <PropertyGroup>
        <!--vsts path of silverlight project-->
        <VstsProjectPath>$/Vsts/Team/SourceCode/SilverlightPortal</VstsProjectPath>
        <!--workspace of vsts path-->
        <WorkspacePath>D:\VstsSourceCode\Team\SourceCode\SilverlightPortal</WorkspacePath>
        <TFCommand>C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\TF.exe</TFCommand>
        <TestEnvPublishPath>\\127.0.0.1\SilverlightPortal</TestEnvPublishPath>
    </PropertyGroup>
    
    
<!--Step1:Get latest source code from vsts-->
    <Target Name="GetLatest">
        <Exec Command="'$(TFCommand)' $(VstsProjectPath) /v:T /force /recursive"
              WorkingDirectory="$(WorkspacePath)"
              ContinueOnError="false"/>
    </Target>
    
    
<!--Step2:Build silverlight project-->
    <Target Name="Build">
        <MSBuild Projects="$(WorkspacePath)\SilverlightPortal.csproj"
                 Targets="Rebuild"
                 Properties="Configuration=Release"
                 ContinueOnError="false"/>
    </Target>
    
    
<!--Step3:Publish output xap-->
    <Target Name="Publish">
        <Exec Command="net use $(TestEnvPublishPath) /user:TestEnv\TestUser TestUserPassword"
              ContinueOnError="false"/>
        <!--copy output xap to network shared directory-->
        <Exec Command="copy $(WorkspacePath)\Bin\Release\SilverlightPortal.xap $(TestEnvPublishPath)\ClientBin\SilverlightPortal.xap"
              ContinueOnError="false"/>
        <Exec Command="notepad $(TestEnvPublishPath)\Web.config"
              ContinueOnError="false"/>
    </Target>

    <Target Name="Main">
        <CallTarget Targets="GetLatest" ContinueOnError="false"/>
        <CallTarget Targets="Build" ContinueOnError="false"/>
        <CallTarget Targets="Publish"/>
    </Target>
</Project>

        第二步:編寫PublishXap.bat文件,用Project.proj文件做為輸入調用msbuild.exe執行編譯任務。

@echo off
C:\WINDOWS\Microsoft.NET\Framework\v3.5\MSBuild.exe Project.proj
pause

      注意,需要你創建一個目錄,目錄中放Project.proj文件和PublishXap.bat文件。雙擊bat文件即可執行構建。

0
0
 
 
 
 

文章列表

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()