SuperAPI AI 工具集

including-generated-files

通用与其它

查看项目

更新于 10-16 00:05

技能介绍

用途:解决 MSBuild 构建阶段生成的文件被忽略的问题,例如生成文件未进入输出目录、生成源码未被编译、通配符未捕获构建期创建的文件。原因是 MSBuild 分评估阶段与执行阶段,执行阶段生成的文件在评估阶段不存在,因此默认通配符找不到它们。

主要能力与用法:

  1. 生成源码文件时,在生成文件的目标内把文件加入 Compile 与 FileWrites 项组,并将目标挂到 BeforeTargets="CoreCompile;BeforeCompile"。
  2. 生成非代码文件(配置、数据等)时,加入 None 或 Content 并设置 CopyToOutputDirectory="PreserveNewest",目标挂到 BeforeTargets="BeforeBuild";若过早可用 BeforeTargets="AssignTargetPaths" 作为兜底。
  3. 生成文件位置始终使用 $(IntermediateOutputPath) 作为基目录,不要硬编码 obj\ 或手工拼接中间路径。
  4. 每个生成文件都应加入 FileWrites,确保 Clean 目标能正确删除,避免陈旧产物累积。
  5. 通配符在目标外只捕获评估阶段可见文件,在目标内则捕获目标运行时可见文件,因此 ItemGroup 应放在 Target 内。

适用场景:自定义 MSBuild 目标生成 .cs 源码、配置或数据文件,并需要参与编译或复制到输出目录的 .NET 项目。

限制:资料未提供具体平台、版本要求、收费或价格信息;示例中的生成逻辑需由使用者自行实现。