20131209 ms build_using_task By Anney

14
MSBuild-Inline Task Anney

description

20131209 ms build_using_task By Anney

Transcript of 20131209 ms build_using_task By Anney

Page 1: 20131209 ms build_using_task By Anney

MSBuild-Inline TaskAnney

Page 2: 20131209 ms build_using_task By Anney

04/12/20232

需求說明

在 MSBuild 中想要自行撰寫程式。 Task Name 為 MyTest

參數為 P1

Page 3: 20131209 ms build_using_task By Anney

04/12/20233

UsingTask Task

Page 4: 20131209 ms build_using_task By Anney

04/12/20234

Example

Page 5: 20131209 ms build_using_task By Anney

04/12/20235

Properties

Property DescriptionTaskName [require]

AssemblyFile [require] 這項屬性接受完整路徑或相對路徑。可以使用 AssemblyName  屬性來指定內嵌 TaskFactory 類別的完整名稱,它通常位於全域組件快取 (GAC) 中。

TaskFactory [require]

Page 6: 20131209 ms build_using_task By Anney

04/12/20236

Child Element

Element DescriptionParameterGroup Inline 程式中所需要的 input or output 的參數

Task

Reference specifies references to the .NET assemblies that you are using in your code. 

Using namespaces that you want to access. 

Code Inline 程式碼

Page 7: 20131209 ms build_using_task By Anney

04/12/20237

ParameterGroup Properties

Property Description

Required [optional]預設為 false

ParameterType  [optional]預設為 System.String

Output [optional]預設為 false  的選擇性屬性。若為 true,則在從 Execute 方法傳回之前必須提供值給此參數。

Page 8: 20131209 ms build_using_task By Anney

04/12/20238

Code Element - Properties

Property DescriptionLanguage 指定用於撰寫程式碼的語言。

可接受的值為 cs ( 適用於 C#) 、 vb ( 適用於 Visual

Basic) ,和 js ( 適用於 JScript) 。Type • Class,則 Code  項目會包含衍生自 ITask  介面之類別

的程式碼。• Method,則程式碼會定義 ITask  介面之 Execute  方

法的覆寫。• Fragment,則程式碼會定義 Execute  方法的內容,但

並非簽章或 return  陳述式。

Page 9: 20131209 ms build_using_task By Anney

04/12/20239

Example

Page 10: 20131209 ms build_using_task By Anney

04/12/202310

本日練習主題 Copy Target

Copy D:\test\MSBuild\MyApp Folder to D:\test\MSBuild\DST

Task: Copy

Delete Target

Delete D:\test\MSBuild\DST\*.txt

Task: Delete

Show Target

Show D:\test\MSBuild\DST\*.* Files

Task: Message

Clean Target

Task: RemoveDir

Task References

http://msdn.microsoft.com/en-us/library/vstudio/7z253716.aspx

Page 11: 20131209 ms build_using_task By Anney

04/12/202311

本日練習主題 (2) - Incremental

請在 Copy, Del Target 上加入 Incremental build

請執行 msbuild Test.targets /t:Copy;Del;Show 2 次,結果為何?

Page 12: 20131209 ms build_using_task By Anney

04/12/202312

本日練習主題 (3) - UsingTask

Taskname: MyReplaceTextTask

Input Param: oldText, newText

Page 13: 20131209 ms build_using_task By Anney

04/12/202313

Reference

http://msdn.microsoft.com/en-us/library/dd722601.aspx

Page 14: 20131209 ms build_using_task By Anney

04/12/202314

~ THE END~