2
我想創建一個稱爲一種時尚像這樣一個自定義任務:創建的MSBuild CustomTask可以接受子XML元素或XML屬性(的MSBuild 3.5)
<Target Name="Remap">
<ItemGroup>
<Entry Key="key1" Value="value1" />
<Entry Key="key2" Value="value2" />
</ItemGroup>
<CustomTask
Entries="@(Entry)"
/>
</Target>
或者這樣:
<Target Name="Remap">
<ItemGroup>
<Entry>
<Key>key1</Key>
<Value>value1</Value>
</Entry>
<Entry>
<Key>key2</Key>
<Value>value2</Value>
</Entry>
</ItemGroup>
<CustomTask
Entries="@(Entry)"
/>
</Target>
我嘗試了使用:
public class CustomTask : Task
{
public override bool Execute()
{
...
}
[Required]
public ITaskItem[] Entries { get; set; }
}
但在第一種情況下,我得到的錯誤:
error MSB4066: The attribute "Key" in element <Entry> is unrecognized.
而在第二種情況下,雖然沒有錯誤,但Entries集合只是空的。
有沒有辦法使用MsBuild自定義任務完成此任務?