在軟件項目不斷的進展中,MSBuild 腳本可能幾個月都不會被修改,因為通常編譯和發布的目錄是不經常變化的。
但,一旦某天你需要修改了,看到那一堆 $(Something)、 @(Something)、%(Something) 是相當的頭大,不得不搜索 MSDN 才能找到合理的用法。
每次看到下面這樣的語法,我都感覺,有必要把語法設計成這樣嗎?
1 <Copy SourceFiles="@(SrcFiles)" DestinationFiles="@(SrcFiles->'c:\DestDir\%(RecursiveDir)%(Filename)%(Extension)')" />
這篇文章將對 PropertyGroup、ItemGroup 和 ItemMetadata 做簡單的語法介紹,解救未來的自己。
PropertyGroup 和 $ 符號
PropertyGroup 用於標記一個或多個變量值。ProperyGroup 內的 XML 節點屬性(Property)可以用任何字符串命名。
屬性可以通過 $(OtherPropertyName) 語法來引用其他屬性的的值。同樣,在其他位置使用相同方式引用屬性值。
1 <PropertyGroup>
2 <BaseFolder>C:\my\folder</BaseFolder>
3 <SettingsFile>$(BaseFolder)\settings\app.xml</SettingsFile>
4 </PropertyGroup>
5 <Message Text="Using settings file found at $(SettingsFile)"/>
上面的 Message 命令的輸出結果為:
1 Using settings file found at C:\my\folder\settings\app.xml
ItemGroup 和 @ 符號
本欄目