在MSBuild中传递variables的不同方法

我对MS Build很陌生,一直在审查Visual Studio附带的许多内置目标文件。 我已经看到variables通过了几种不同的方式,并不太清楚这些之间的差异:

$(...) @(...) %(...) 
  • $(...)用于访问Property值(有关Property元素的更多信息)

     <PropertyGroup> <Configuration>Debug</Configuration> </PropertyGroup> <Message Text="Configuration = $(Configuration)"/> 
  • @(...)用于访问Item值(有关Item元素的更多信息)

     <ItemGroup> <Reference Include="System.Data"/> <Reference Include="System.Web.*"/> </ItemGroup> <Message Text="References = @(Reference)"/> 
  • %(...)用于访问Item Metadata值(有关项目元数据的更多信息)。 它也被用来做配料 。

     <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)"/> 

美元 – $(MyProp):允许您引用在PropertyGroups中指定的值。

在Sign – @(CodeFile):允许您引用ItemGroups中指定的项目列表。

百分比 – %(CodeFile.BatchNum):允许您使用元数据引用批量的ItemGroup值。 这有点复杂,所以绝对要查看文档以获取更多信息。

看看每个链接的更详细的信息如何使用这些。 祝你好运,希望这会有帮助!