国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

用msbuild構建應用

2019-11-17 02:18:46
字體:
來源:轉載
供稿:網友

用msbuild構建應用

Posted on 2015-06-18 13:40 松大人 閱讀(...) 評論(...) 編輯 收藏

  msbuild是微軟提供的一個用于生成應用程序的平臺,你可以通過一個xml配置文件來控制和處理你的軟件工程。它也集成到了vs里面,它不依賴于vs。

xml配置(架構)的組成元素:

  •   項目文件

      屬性

      項

      任務

      目標

屬性: 
<PRopertyGroup>    <AssemblyName>MSBuildSample</AssemblyName>    <OutputPath>Bin/</OutputPath>  </PropertyGroup>
項: 
<ItemGroup>    <Compile Include="helloworld.cs" />  </ItemGroup>
任務:
    <MakeDir Directories="$(OutputPath)" Condition="!Exists('$(OutputPath)')" />    <Csc Sources="@(Compile)" OutputAssembly="$(OutputPath)$(AssemblyName).exe" />
目標:目標是將一些任務有順序的組合到一起
<Target Name="Build">    <MakeDir Directories="$(OutputPath)" Condition="!Exists('$(OutputPath)')" />    <Csc Sources="@(Compile)" OutputAssembly="$(OutputPath)$(AssemblyName).exe" />  </Target>

下面是msdn上面一個最簡單的xml構架文件:

<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">  <ItemGroup>    <Compile Include="helloworld.cs" />  </ItemGroup>  <Target Name="Build">    <Csc Sources="@(Compile)"/>    </Target></Project>

該文件通過一個任務編譯helloworld.cs文件。

下面是一個完整的構建一個c/s架構應用程序的簡單示例:

xml文件定義的屬性:
<PropertyGroup>    <OutDir>output</OutDir>    <OutServerDir>$(OutDir)server</OutServerDir>    <OutClientDir>$(OutDir)client</OutClientDir>    <SolutionFile>../xx/你的工程文件.sln</SolutionFile>    <ServerDir>xx/xx/工程編譯后bin/server目錄</ServerDir>    <ClientDir>xx/xx/工程編譯后bin/client目錄</ClientDir></PropertyGroup>

xml文件定義的項:
<ItemGroup>    <ServerDirFiles Include="$(ServerDir)/**/*.*" Exclude="你要排除的文件定義"/>    <ClientDirFiles Include="$(ClientDir)/**/*.*" Exclude="你要排除的文件定義"/></ItemGroup>

xml文件定義的任務列表:
  1. Clean
  2. Init
  3. Build
  4. Relesase  
  <Target Name="Clean">        <RemoveDir Directories="$(OutDir)"/>    </Target>        <Target Name="Init" DependsOnTargets="Clean">        <MakeDir Directories="$(OutDir)"/>        <MakeDir Directories="$(OutServerDir)"/>        <MakeDir Directories="$(OutClientDir)"/>    </Target>        <Target Name="Build" DependsOnTargets="Init">        <MSBuild         Projects="$(SolutionFile)"         Targets="Rebuild"         Properties="Configuration=Release"/>    </Target>        <Target Name="CopyFiles" DependsOnTargets="Build">        <Copy         SourceFiles="@(ServerDirFiles)"         DestinationFiles="@(ServerDirFiles->'$(OutServerDir)/%(RecursiveDir)%(Filename)%(Extension)')"/>        <Copy         SourceFiles="@(ClientDirFiles)"         DestinationFiles="@(ClientDirFiles->'$(OutClientDir)/%(RecursiveDir)%(Filename)%(Extension)')"/>    </Target>
以上幾個片段的匯總:
<Project DefaultTargets="CopyFiles" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">    <PropertyGroup>        <OutDir>output</OutDir>        <OutServerDir>$(OutDir)server</OutServerDir>        <OutClientDir>$(OutDir)client</OutClientDir>        <SolutionFile>../xx/你的工程文件.sln</SolutionFile>        <ServerDir>xx/xx/工程編譯后bin/server目錄</ServerDir>        <ClientDir>xx/xx/工程編譯后bin/client目錄</ClientDir>    </PropertyGroup>    <ItemGroup>        <ServerDirFiles Include="$(ServerDir)/**/*.*"/>        <ClientDirFiles Include="$(ClientDir)/**/*.*"/>    </ItemGroup>        <Target Name="Clean">        <RemoveDir Directories="$(OutDir)"/>    </Target>        <Target Name="Init" DependsOnTargets="Clean">        <MakeDir Directories="$(OutDir)"/>        <MakeDir Directories="$(OutServerDir)"/>        <MakeDir Directories="$(OutClientDir)"/>    </Target>        <Target Name="Build" DependsOnTargets="Init">        <MSBuild         Projects="$(SolutionFile)"         Targets="Rebuild"         Properties="Configuration=Release"/>    </Target>        <Target Name="CopyFiles" DependsOnTargets="Build">        <Copy         SourceFiles="@(ServerDirFiles)"         DestinationFiles="@(ServerDirFiles->'$(OutServerDir)/%(RecursiveDir)%(Filename)%(Extension)')"/>        <Copy         SourceFiles="@(ClientDirFiles)"         DestinationFiles="@(ClientDirFiles->'$(OutClientDir)/%(RecursiveDir)%(Filename)%(Extension)')"/>    </Target></Project>
View Code

在使用這個msbuild xml文件的時候你可以寫一個批處理命令:

@echo off%SystemRoot%/Microsoft.NET/Framework/v2.0.50727/msbuild build.xml /nologo /v:mpause

  


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 建水县| 昆明市| 稷山县| 旅游| 化隆| 简阳市| 苍南县| 叶城县| 卫辉市| 湄潭县| 霸州市| 嘉黎县| 分宜县| 石棉县| 武川县| 沁阳市| 宝兴县| 盐边县| 府谷县| 呼图壁县| 唐山市| 和林格尔县| 尉犁县| 萝北县| 德保县| 临泉县| 凌云县| 盈江县| 绥芬河市| 宁明县| 景德镇市| 三门峡市| 体育| 蕉岭县| 随州市| 和静县| 华阴市| 北辰区| 宜兴市| 林州市| 余干县|