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文件即可执行构建。

  • 相关阅读:
    数据库存储过程语法及实例
    springboot2配置JavaMelody与springMVC配置JavaMelody
    org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.reflection.ReflectionException: There is no getter for property named 'userId' in 'class java.lang.Integer'
    ajax表单提交执行成功但是没有执行回调函数,并且post变get了
    SpringMVC——重定向跳转传值
    thymeleaf中跳转地址的使用
    solr安装与配置
    redis集群redis-cluster搭建
    nginx安装手册
    Linux忘记root用户的密码
  • 原文地址:https://www.cnblogs.com/fuhongwei041/p/1818682.html
Copyright © 2011-2022 走看看