代码之家  ›  专栏  ›  技术社区  ›  Bob

msbuild-如何查看目标的输入和输出值

  •  2
  • Bob  · 技术社区  · 8 年前

    我已经为我的构建启用了“诊断”级别的日志记录。

    但是,我仍然没有看到 输入 在我的构建日志中。

    没有我手动输出它,有没有办法强制它出现在目标的属性列表中?

    <Target Name="buildelf" Inputs="$(LDFILE);$(OBJFILES)" Outputs="$(ELFFILE)">
    ...
    

    我可以看到 $(OBJFILES) $(LDFILE)

    Task Parameter:
    
    Properties=
    OBJFILES=.\Output\Objects\HW_Interface.doj
          .\Output\Objects\A_HW_Module.doj
          .\Output\Objects\HeapMngr.doj
    LDFILE=C:\work\CANary.CPU.A.APP.ld  ELFFILE=C:\work\APP.elf (TaskId:23594)
    

    MSBuild 说。

    跳过目标“buildelf”,因为所有输出文件相对于输入文件都是最新的。

    . . .我想知道输入和输出是什么。

    1 回复  |  直到 8 年前
        1
  •  1
  •   Jacek Blaszczynski    8 年前

    如果您的目标是打印财产价值 $(ELFFILE) 它可以作为构建期间的附加操作来完成。例如,可以将以下目标和任务添加到项目中,以将属性值显式打印到输出和日志中:

        <Target Name="DisplayMyProperties">  
                <Message Importance="High" Text="Output files: $(ELFFILE)" />  
                <Message Importance="High" Text="Input files: $(LDFILE);$(OBJFILES)" />  
        </Target>
        <Target Name="buildelf" DependsOnTargets="DisplayMyProperties" Inputs="$(LDFILE);$(OBJFILES)" Outputs="$(ELFFILE)">
    

    这将强制打印所有属性值,然后在中执行或跳过它们 buildelf 目标然而,您的项目似乎具有自定义结构,这可能需要调整位置 DisplayMyProperties 目标将被执行。应在以下值之后执行: $(LDFILE) , $(OBJFILES) , $(ELF文件) 填充并独立于执行 buildelf 目标