zoukankan      html  css  js  c++  java
  • 用MSBuild自动发布Silverlight xap

        最近刚做完一个大型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文件即可执行构建。

  • 相关阅读:
    开发板S3C2440挂起NFS步骤
    wind10系统 Atheros AR9271 Wireless Network Adapter USBwifi无线网卡的驱动安装解决无法搜索wifi信号,连接wifi信号无法上网的问题
    编写一个多线程函数实现对数组排序,要求: 1.至少用两个线程 2.数组的元素值可以事先定义好,或者可以从键盘输入(增加一个线程)。 3.用一个线程对数组排序,用另一个线程输出排序结果。 4.保证先排好序,再输出。
    led.c驱动框架2nd
    led.c驱动框架
    文件I/O的操作实例
    Python os.removedirs() 和shutil.rmtree() 用于删除文件夹
    Python os.remove() 删除文件
    Python os.chdir() 方法
    Python os.access() 方法
  • 原文地址:https://www.cnblogs.com/fuhongwei041/p/1818682.html
Copyright © 2011-2022 走看看