gpt4 book ai didi

msbuild - 在 MSBuild 中,为什么属性内的项元数据没有被解析?

转载 作者:行者123 更新时间:2023-12-02 12:55:14 25 4
gpt4 key购买 nike

下面是我正在处理的 MSBuild 文件的一部分:

<ItemGroup>
<Tests Include="$(SolutionDir)\**\bin\$(TestPlatform)\$(Configuration)\*.Tests.dll" />
</ItemGroup>

<PropertyGroup>
<TestProperties>/testcontainer:%(Tests.FullPath)</TestProperties>
</PropertyGroup>

我想要一个包含命令行开关的属性。但是,当我尝试在 Exec Command 字符串中使用 $(TestProperties) 时,%(Tests.FullPath) 永远不会解析为绝对值测试项目的路径。相反,它始终按字面处理,如 "%(Tests.FullPath)"

我做错了什么还是这是标准的MSBuild行为?如果是后者,我有办法解决这个问题吗?

谢谢

附注- 我意识到我可能不需要访问 FullPath 属性,因为我的 Include 值是绝对路径。但是,我仍然想了解这个问题以及如何处理它。

最佳答案

您有语法错误。项目列表通过@字符引用,项目元数据通过%引用。引用MSBuild Special Character Reference了解详情。要访问众所周知的项目元数据,您需要在属性本身内部应用转换。

<ItemGroup>
<Tests Include="MyFile.txt" />
</ItemGroup>

<PropertyGroup>
<TestProperties>/testcontainer:@(Tests->'%(FullPath)')</TestProperties>
</PropertyGroup>

您可以找到更多帮助here

关于msbuild - 在 MSBuild 中,为什么属性内的项元数据没有被解析?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10149705/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com