我可以编译.cs引用的PropertyGroup文件:

<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
    <PropertyGroup>
        <AssemblyName>MSBuildSample</AssemblyName>
        <OutputPath>Bin\</OutputPath>
        <Compile>helloConfig.cs</Compile>
    </PropertyGroup>

    <Target Name="Build">
        <MakeDir Directories="$(OutputPath)" Condition="!Exists('$(OutputPath)')" />
        <Csc Sources="$(Compile)" OutputAssembly="$(OutputPath)$(AssemblyName).exe"/>
    </Target>
</Project>

或使用ItemGroup做同样的事情:
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
    <ItemGroup>
        <Compile Include="helloConfig.cs" />
    </ItemGroup>

    <PropertyGroup>
        <AssemblyName>MSBuildSample</AssemblyName>
        <OutputPath>Bin\</OutputPath>
    </PropertyGroup>

    <Target Name="Build">
        <MakeDir Directories="$(OutputPath)" Condition="!Exists('$(OutputPath)')" />
        <Csc Sources="@(Compile)" OutputAssembly="$(OutputPath)$(AssemblyName).exe"/>
    </Target>
</Project>

我知道使用ItemGroup应该是首选方法,但是什么时候应该使用这些属性中的每一个?

最佳答案

将属性组视为单个变量的集合,属性只能保存一个值。

而itemgroup类似于可以容纳零个,一个或多个值的数组或集合。您还可以迭代项目组,当您要对多个项目执行同一任务时,这通常很有用。一个常见的例子是编译许多文件。

08-27 02:16