首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >元素未正确展开ItemGroup。

元素未正确展开ItemGroup。
EN

Stack Overflow用户
提问于 2018-12-27 16:42:48
回答 1查看 60关注 0票数 0

我试图用目录basenames填充ItemGroup,通过转换传递它,从它们创建绝对路径,并导入驻留在那里的文件。它在Message元素中运行得完美无缺,但在Import中没有执行任何操作。我遗漏了什么?

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
    <ItemGroup>
        <MyDependencies Include="Dir1" />
        <MyDependencies Include="Dir2" />
    </ItemGroup>

    <!-- "Expansion: C:\path\Dir1\import.targets;C:\some\path\Dir2\import.targets" -->
    <Target Name="TestMessage" BeforeTargets="PrepareForBuild">
        <Message
            Importance="High"
            Text="Expansion: @(MyDependencies -> 'C:\path\%(Identity)\import.targets')"
        />
    </Target>

<!-- Uncomment to trigger error -->
<!--<Import Project="@(MyDependencies -> 'C:\path\%(Identity)\import.targets')" />-->
</Project>

Import的道路仍未扩大,并导致:

代码语言:javascript
复制
error MSB4102: The value "@(MyDependencies -> 'C:\path\%(Identity)\import.targets')" of the "Project" attribute in element <Import> is invalid. Illegal characters in path.
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-06-07 10:04:52

之所以会发生这种情况,是因为只在导入之后才对ItemGroup进行评估。请参阅https://learn.microsoft.com/en-us/visualstudio/msbuild/comparing-properties-and-items?view=vs-2022#property-and-item-evaluation-order

在生成的评估阶段,导入的文件会按照它们出现的顺序合并到生成中。属性和项按以下顺序在三次传递中定义:

换句话说,Import与在导入位置复制粘贴文件内容几乎是一样的,只有在该MSBuild开始计算属性和项之后。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53948207

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档