MSBuild basic concepts(MSBuild基本概念):MSBuild items

2.MSBuild items

MSBuild项目是构建系统的输入,通常代表文件(文件在Include属性中指定)。根据项目的元素名称将项目分组为项目类型。项目类型是可以用作任务参数的项目的命名列表。任务使用项目值执行构建过程的步骤。

在porject file中创建item

将项目文件中的项目声明为ItemGroup元素的子元素。子元素的名称是项目类型Include元素的属性指定要包含在该项目类型中的项目(文件)。例如,以下XML创建名为的项目类型Compile,其中包括两个文件。

<ItemGroup>
    <Compile Include = "file1.cs"/>
    <Compile Include = "file2.cs"/>
</ItemGroup>

项目file2.cs不会替代项目file1.cs;而是将文件名附加到Compile项目类型的值列表中。

以下XML通过在一个Include属性中声明两个文件来创建相同的项目类型。请注意,文件名用分号分隔。

<ItemGroup>
    <Compile Include = "file1.cs;file2.cs"/>
</ItemGroup>

 Include属性是相对于项目文件的文件夹$(MSBuildProjectPath)进行解释的路径,即使该项目位于导入的文件

在执行期间创建项目

在构建的评估阶段,将为目标元素以外的项目分配值。在后续执行阶段中,可以通过以下方式创建或修改项目:

  • 任何任务都可以发射物品。要发出项目,Task元素必须具有带有属性的子Output元素ItemName

  • CreateItem任务可以发出一个项目。不建议使用此用法。

  • 从.NET Framework 3.5开始,Target元素可能包含可能包含项目元素的ItemGroup元素。

项目文件中的参考项目 

要在整个项目文件中引用项目类型,请使用语法@(<ItemType>)。例如,您可以使用来引用上一个示例中的项目类型@(Compile)。通过使用此语法,可以通过将项目类型指定为该任务的参数来将项目传递给任务。

1,声明某个项目

<CSFile Include="form1.cs"/>

<VBFile Include="form1.vb"/>

2,声明多个项目

<CSFile Include="form1.cs;form2.cs"/>

<VBFile Include="form1.vb;form2.vb"/>

3.通过通配符指定输入:

将所有.jpg文件包含在Images目录和子目录中:Include="Images\**\*.jpg"

包括所有以img开头的.jpg文件  :Include="Images\**\img*.jpg"

将名称以jpgs结尾的所有文件包括在目录中:Include="Images\**\*jpgs\*.*"  or  Include="Images\**\*jpgs\*"

4,将项目传递给任务

将所有Visual C#或Visual Basic文件用作输入

使用Include类似于以下内容的属性:

<CSC Sources="@(CSFile)">...</CSC>

要么

<VBC Sources="@(VBFile)">...</VBC>

 
<Project DefaultTargets="Compile"
    xmlns="http://schemas.microsoft.com/developer/msbuild/2003" >
    <PropertyGroup>
        <Builtdir>built</Builtdir>
    </PropertyGroup>

    <ItemGroup>
        <CSFile Include="Form1.cs"/>
        <CSFile Include="AssemblyInfo.cs"/>

        <Reference Include="System.dll"/>
        <Reference Include="System.Data.dll"/>
        <Reference Include="System.Drawing.dll"/>
        <Reference Include="System.Windows.Forms.dll"/>
        <Reference Include="System.XML.dll"
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值