2010-05-11 14 views
52

Soy bastante nuevo en MS Build y he estado revisando muchos de los archivos de destino integrados que se entregan con Visual Studio. He visto variables pasadas unas cuantas formas diferentes y no estoy muy seguro de las diferencias entre éstos:Diferentes formas de pasar variables en MSBuild

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

Respuesta

67
  • $(...) se usa para acceder Property valor (Más información sobre Property element)

    <PropertyGroup> 
        <Configuration>Debug</Configuration> 
    </PropertyGroup> 
    
    <Message Text="Configuration = $(Configuration)"/> 
    
  • @(...) se usa para acceder Item valor (Más información sobre Item element)

    <ItemGroup> 
        <Reference Include="System.Data"/> 
        <Reference Include="System.Web.*"/> 
    </ItemGroup> 
    
    <Message Text="References = @(Reference)"/> 
    
  • %(...) se usa para acceder alValor(Más información sobre Item Metadata). También se usa para hacer 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): permite hacer referencia a los valores especificados dentro PropertyGroups.

At Sign - @(CodeFile): Le permite hacer referencia a listas de elementos especificados dentro de Grupos de elementos.

Percent - %(CodeFile.BatchNum): Permite hacer referencia a los valores de grupo de elementos por lotes utilizando metadatos. Esto es un poco más complicado, así que definitivamente revise la documentación para obtener más información.

Eche un vistazo a cada enlace para obtener información más detallada sobre cómo se usan. ¡Buena suerte, espero que esto ayude!

Cuestiones relacionadas