阅读 msbuild 语法
Reading msbuild syntax
我 运行 遇到了我不理解的 msbuild 语法。以下片段来自 another question about making a custom msbuild task
<GenerateDesignerDC
InputFiles="@(dbml)"
OutputFiles="@(dbml->'$(IntermediateOutputPath)%(FileName).designer.cs')">
...
@(dbml->'$(IntermediateOutputPath)%(FileName).designer.cs')
是什么意思? @
符号通常引用 ItemGroup
中的文件; @(...)
中的 ->
箭头是什么意思?
这种用于替换属性的小语言是什么(使用 @
s、$
s、%
s、->
等)构建任务叫什么?
不知道这些小语种有没有专门的名字。据我所知,这些是定义为提取或显示项目或项目可能包含的元数据的值的方法。
例如:@
符号用于获取任何 ItemType 的值。
对于项目列表转换,使用 @(SourceFiles -> '%(Filename).obj')
。
查看此 link 了解更多信息
https://msdn.microsoft.com/en-us/library/dd393573.aspx
请参阅检查项目类型值中的部分。
此特定语法称为 transform。
A transform is a one-to-one conversion of one item list to another. In addition to enabling a project to convert item lists, a transform enables a target to identify a direct mapping between its inputs and outputs.
没有明确记录语法。 ->
之前的部分是 item list like that which would normally be referenced by @
. In the example @(dbml->...)
it is transforming the dbml
item list. The part after the ->
is an expression for the new file name. It can refer to any item metadata with a %
symbol. In the example it's constructing a string with the $(IntermediateOutputPath)
property and the %(Filename)
well-known item metadata.
众所周知的项目元数据应该可用于任何项目,并且最值得注意的是包括项目的路径
MetaData Example
%(FullPath) C:\MyProject\Source\Program.cs
%(RootDir) C:\
%(Directory) MyProject\Source\
%(Filename) Program
%(Extension) .cs
我 运行 遇到了我不理解的 msbuild 语法。以下片段来自 another question about making a custom msbuild task
<GenerateDesignerDC
InputFiles="@(dbml)"
OutputFiles="@(dbml->'$(IntermediateOutputPath)%(FileName).designer.cs')">
...
@(dbml->'$(IntermediateOutputPath)%(FileName).designer.cs')
是什么意思? @
符号通常引用 ItemGroup
中的文件; @(...)
中的 ->
箭头是什么意思?
这种用于替换属性的小语言是什么(使用 @
s、$
s、%
s、->
等)构建任务叫什么?
不知道这些小语种有没有专门的名字。据我所知,这些是定义为提取或显示项目或项目可能包含的元数据的值的方法。
例如:@
符号用于获取任何 ItemType 的值。
对于项目列表转换,使用 @(SourceFiles -> '%(Filename).obj')
。
查看此 link 了解更多信息 https://msdn.microsoft.com/en-us/library/dd393573.aspx
请参阅检查项目类型值中的部分。
此特定语法称为 transform。
A transform is a one-to-one conversion of one item list to another. In addition to enabling a project to convert item lists, a transform enables a target to identify a direct mapping between its inputs and outputs.
没有明确记录语法。 ->
之前的部分是 item list like that which would normally be referenced by @
. In the example @(dbml->...)
it is transforming the dbml
item list. The part after the ->
is an expression for the new file name. It can refer to any item metadata with a %
symbol. In the example it's constructing a string with the $(IntermediateOutputPath)
property and the %(Filename)
well-known item metadata.
众所周知的项目元数据应该可用于任何项目,并且最值得注意的是包括项目的路径
MetaData Example
%(FullPath) C:\MyProject\Source\Program.cs
%(RootDir) C:\
%(Directory) MyProject\Source\
%(Filename) Program
%(Extension) .cs