學習MSBuild

在網上找了半天,找到一個介紹MSBuild的例子,拿過來運行,完全錯誤的。

以下是參考MSDN做的一個例子,以方便新來的少走一點彎路。

FileName: Program.cs

using System;
using System.Collections.Generic;
using System.Text;

namespace HelloMSBuild
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Hello MSBuild!");
        }
    }
}

 

FileName: hello.cs

using System;
using System.Collections.Generic;
using System.Text;

namespace HelloMSBuild
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Hello MSBuild!");
        }
    }
}

 


FileName: Build.csproj

<Project DefaultTargets="Run" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 <PropertyGroup>
  <Bin>bin</Bin>
  <OutAssembly>HelloMSBiuld</OutAssembly>
  <OutAssembly1>Hello</OutAssembly1>
 </PropertyGroup>
 
 <ItemGroup>
  <CSFile Include="Program.cs"></CSFile>
  <hello Include="Program.cs"></hello>
 </ItemGroup>

<!--================================================================-->
<!--                        清除歷史文件                         -->
<!--================================================================-->
 <Target Name="Clean">
  <RemoveDir Directories="$(Bin)" Condition="Exists('$(Bin)')"/>
 </Target>
 
<!--================================================================-->
<!--   開始編譯程序        -->
<!--================================================================-->
 <Target Name="Build" DependsOnTargets="Clean">
  <MakeDir Directories="$(Bin)"/>
  <Csc Sources="@(CSFile)" TargetType="exe" OutputAssembly="$(Bin)/$(OutAssembly).exe"/>
  <Csc Sources="@(hello)" TargetType="library" OutputAssembly="$(Bin)/$(OutAssembly1).lib"/>
  <OnError ExecuteTargets="Clean"/>
 </Target>
 
<!--================================================================-->
<!--        執行程序        -->
<!--================================================================-->
 <Target Name="Run" DependsOnTargets="Build;Clean">
  <Exec Command="$(Bin)/$(OutAssembly).exe" Condition="!Exists('$(Bin)/(!OutAssembly).exe')"/>
 </Target>
<!--================================================================-->
<!--                      測試 Delete Target                     -->
<!--================================================================-->
 <Target Name="Delete">
  <Delete Files="$(Bin)/$(OutAssembly).exe" Condition="Exists('$(Bin)/$(OutAssembly).exe')"/>
  <Delete Files="$(Bin)/$(Hello).lib" Condition="Exists('$(Bin)/$(Hello).lib')"/>
  <RemoveDir Directories="$(Bin)" Condition="Exists('$(Bin)')"/>
 </Target>
</Project>


C:/> MSBuild Build.csproj

參考
http://msdn2.microsoft.com/zh-CN/library/0k6kkbsd(VS.80).aspx
http://channel9.msdn.com/wiki/default.aspx/MSBuild.HomePage
http://forums.microsoft.com/msdn/showforum.aspx?forumid=27&siteid=1

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章