Visual studio msbuild-使用属性或项存储值之间的差异
在我现有的Visual studio msbuild-使用属性或项存储值之间的差异,visual-studio,visual-studio-2013,msbuild,Visual Studio,Visual Studio 2013,Msbuild,在我现有的MSBuildXML中,我有 <Exec EchoOff="true" StandardOutputImportance="low" StandardErrorImportance="low" IgnoreExitCode="true" ConsoleToMSBuild="true" Command=' "$(CompilerExe)" ^
MSBuild
XML中,我有
<Exec
EchoOff="true"
StandardOutputImportance="low"
StandardErrorImportance="low"
IgnoreExitCode="true"
ConsoleToMSBuild="true"
Command='
"$(CompilerExe)" ^
$(HWProcessor) ^
$(IncludeDirs) ^
$(CompilerOptions) ^
$(CompileDefines) ^
"$(CPPFILE)" ^
-MM
'>
<Output TaskParameter="ConsoleOutput" PropertyName="output_cppdeps"/>
<Output TaskParameter="ExitCode" PropertyName="exitcode_cppdeps"/>
</Exec>
<ItemGroup>
<Item_output_cppdeps Include="$(output_cppdeps)" />
</ItemGroup>
执行任务Exec
后,输出output\u cppdeps
被转换为项
;有没有功能上的原因
与属性
相比,您可以对项
执行更多操作吗?还是仅仅是一种风格
与属性相比,您可以对项目执行更多操作吗?还是仅仅是一种风格
在回答这个问题之前,我们需要了解属性
和项
的功能
项目功能:
属性函数:
因此,项和属性具有不同的功能。根据描述:
MSBuild属性和项都用于将信息传递给
任务、评估条件和存储可引用的值
在整个项目文件中
我们可以将属性
转换为项目
或项目
转换为属性
,在这种情况下,我们可以对项目
执行比属性
更多的操作,或者对项目`使用属性
的函数。例如,将项元数据设置为MSBuild脚本中的属性:
<ItemGroup>
<OutputDir Include="KeyFiles\;Certificates\" />
</ItemGroup>
<PropertyGroup>
<OutputDirList>@(OutputDir)</OutputDirList>
</PropertyGroup>
@(输出目录)
之后,我们可以对项
使用属性
函数
有关详细信息,请参阅此链接:
因此,您的理解是正确的,“您可以对项目和属性执行更多操作,而不仅仅是样式。”
希望这有帮助