Задачи MSBuild могут принимать ITaskItem
, примитивы, строку или массив любых из них для параметров.Вы просто объявляете тип в своей задаче, и затем значения будут преобразованы перед передачей в задачу.Если значение не может быть преобразовано в тип, тогда будет сгенерировано исключение, и сборка будет остановлена.
Например, если у вас есть задача, которая принимает int[]
с именем Значения, вы можете сделать.
<Target Name="MyTarget">
<MyTask Values="1;45;657" />
<!-- or you can do -->
<ItemGroup>
<SomeValues Include="7;54;568;432;79" />
</ItemGroup>
<MyTask Values="@(SomeValues) />
</Target>
Оба подхода по сути одинаковы.Другие ответы о том, что все параметры являются строками или что вы должны использовать ITaskItem
, неверны.
Вы сказали, что у вас есть две книги по MSBuild, и я предполагаю, что одна из них - моя Внутри Microsoft Build Engine книга, вам следует прочитать главу о пользовательских задачах, чтобы вы получили полное представление об этих темах.Есть раздел, объясняющий типы параметров специально.