代码之家  ›  专栏  ›  技术社区  ›  Maslow

msbuild任务可以接受基元数组,但如何编写基元数组来传递给任务?

  •  3
  • Maslow  · 技术社区  · 14 年前

    我猜它必须是ITaskitem,因为它是向量而不是标量,我桌上只有2本msbuild书籍,我找不到如何将数组传递给任务的示例。我想做一个字符串数组,但我想知道处理任何基元类型的正确方法。

    如何将字符串数组(或int)传递给msbuild任务?

    2 回复  |  直到 12 年前
        1
  •  10
  •   Sayed Ibrahim Hashimi    12 年前

    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>
    

    两种方法基本相同。其他答案说明所有参数都是字符串或必须使用 伊塔斯基姆 是不正确的。

    你说你有两本关于大厦的书,我想其中一本是我的 Inside the Microsoft Build Engine 本书中,您应该阅读有关自定义任务的章节,以便全面掌握这些主题。有一节专门解释参数类型。

        2
  •  0
  •   Brent Arias    14 年前

    iirc、msbuild项始终是字符串数组-这是唯一的选项。因此整数数组将存储为数组数字字符串。