csproj 中的 MSBuild Delete 不执行任何操作

MSBuild Delete in csproj does nothing

我尝试使用 MSBuild 删除 OutDir 中的一些文件,但它永远行不通。我必须改用 Exec。

  <Target Name="ResetPackages" BeforeTargets="DispatchToInnerBuilds">
    <Exec Command = "del /Q /F $(OutDir)*.extension/>
    <Delete Files="$(OutDir)*.extension" />
  </Target>

Exec 命令有效,而 Delete 无效。谁能解释一下为什么?

如果要扩展通配符,需要将 ItemGroup 传递给 Delete

<Project>
  <Target Name="Test">
     <ItemGroup>
       <_FilesToDelete Include="$(OutDir)*.extension"/>
     </ItemGroup>
     <Delete Files="@(_FilesToDelete)"/>
  </Target>
</Project>

(Exec-Task 运行 CMD.EXE,然后进行通配符扩展。)