2010-05-11 3 views
52

Я довольно новичок в MS Build и пересматриваю многие из встроенных целевых файлов, которые поставляются с Visual Studio. Я видел переменные, передаваемые несколько различных способов, и я не совсем уверен, что различия между этим:Различные способы передачи переменных в MSBuild

$(...) 
@(...) 
%(...) 

ответ

67
  • $(...) используется для доступа к Property стоимости (Подробнее о Property element)

    <PropertyGroup> 
        <Configuration>Debug</Configuration> 
    </PropertyGroup> 
    
    <Message Text="Configuration = $(Configuration)"/> 
    
  • @(...) используется для доступа Item стоимости (Подробнее о Item element)

    <ItemGroup> 
        <Reference Include="System.Data"/> 
        <Reference Include="System.Web.*"/> 
    </ItemGroup> 
    
    <Message Text="References = @(Reference)"/> 
    
  • %(...) используется для доступа Item Metadata value (Дополнительная информация о Item Metadata). Он также используется, чтобы сделать batching.

    <ItemGroup> 
        <Compile Include="Account\ChangePassword.aspx.cs"> 
        <DependentUpon>ChangePassword.aspx</DependentUpon> 
        <SubType>ASPXCodeBehind</SubType> 
        <Compile/> 
    </ItemGroup> 
    
    <Message Text="Element @(Compile) of subtype %(SubType) and depend of %(DependentUpon)"/> 
    
14

Dollar - $(MyProp): Позволяет ссылаться на значения, указанные в PropertyGroups.

At Sign - @(CodeFile): Позволяет ссылаться на списки предметов, указанных в разделе «Группы элементов».

Percent - %(CodeFile.BatchNum): Позволяет ссылаться на сопоставленные значения ItemGroup с использованием метаданных. Это немного сложнее, поэтому обязательно просмотрите документацию для получения дополнительной информации.

Посмотрите на каждую ссылку, чтобы получить более подробную информацию о том, как они используются. Удачи, Надеюсь это поможет!