Подтвердить что ты не робот

Различные способы передачи переменных в MSBuild

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

$(...)
@(...)
%(...)
4b9b3361

Ответ 1

  • $(...) используется для доступа к значению Property (дополнительная информация о элемент свойства)

    <PropertyGroup>
      <Configuration>Debug</Configuration>
    </PropertyGroup>
    
    <Message Text="Configuration = $(Configuration)"/>
    
  • @(...) используется для доступа к значению Item (дополнительная информация о элемент элемента)

    <ItemGroup>
      <Reference Include="System.Data"/>
      <Reference Include="System.Web.*"/>
    </ItemGroup>
    
    <Message Text="References = @(Reference)"/>
    
  • %(...) используется для acces Item Metadata value (Дополнительная информация о Метаданные товара). Он также использовал 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)"/>
    

Ответ 2

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

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

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

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