在網上找了半天,找到一個介紹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