MSBuild 的现有构建目标是什么?

cow*_*tor 8 msbuild visual-studio

MSBuild 允许您指定构建目标,例如BuildCleanwith -target:<build-target>(例如:)MSBuild.exe -target:Clean

当然,开发人员可以使用.targetsxml 文件定义他们自己的目标。

但是,某些目标,例如BuildClean,是由 Microsoft 预先定义的。

所有 .NET 语言通用的所有默认预定义构建目标的列表是什么?

cow*_*tor 15

所有 .NET 语言通用的标准构建目标在Microsoft.Common.CurrentVersion.targets中定义。

这是构建目标的完整列表:

  • 建造
  • 重建
  • 干净的
  • 发布
  • 只发布
  • 解析引用
  • 解决项目引用
  • ResolveAssemblyReferences
  • 生成绑定重定向
  • 准备资源
  • ResGen
  • 编译
  • 生成清单
  • 准备运行
  • 复制文件到输出目录
  • 核心构建
  • 构建生成源
  • 构建编译
  • 构建链接
  • 复制运行环境文件
  • 仅构建设置
  • 准备建造
  • 获取框架路径
  • GetReferenceAssemblyPaths
  • 分配链接元数据
  • 预构建事件
  • 非托管注销
  • 获取目标框架版本
  • 分配项目配置
  • 获取目标路径
  • GetTargetPathWithTargetPlatformMoniker
  • 获取本地清单
  • 解析本地引用
  • 生成绑定重定向
  • GenerateBindingRedirectsUpdateAppConfig
  • 解决SDK参考
  • FindInvalidProjectReferences
  • 展开SDK参考
  • 导出WindowsMD文件
  • DesignTimeResolveAssemblyReferences
  • ResolveComReferences
  • 准备资源名称
  • 分配目标路径
  • 获取项目目标路径
  • 按文化拆分资源
  • 创建自定义清单资源名称
  • 解析密钥源
  • 生成TargetFrameworkMonikerAttribute
  • 生成额外的资源
  • 生成序列化程序集
  • 创建卫星程序集
  • 生成卫星组件
  • 计算中级卫星组件
  • SetWin32ManifestProperties
  • 生成应用程序清单
  • 生成部署清单
  • GetCopyToOutputDirectoryItems
  • 非托管注册
  • 增量清洁
  • 清洁参考项目
  • 清理发布文件夹
  • 构建后事件
  • 设置生成清单
  • 发布构建
  • 所有项目输出组
  • 建成项目输出组
  • DebugSymbolsProjectOutputGroup
  • 文档项目输出组
  • SatelliteDllsProjectOutputGroup
  • 源文件项目输出组
  • 内容文件项目输出组
  • SGenFiles 输出组
  • GetResolvedSDKReferences
  • PriFiles 输出组
  • SDKRedist输出组
  • 获取已安装的 SDK
  • 恢复
  • 建造前
  • 建造后
  • 重建前
  • 重建后
  • BeforeResolveReferences
  • AfterResolveReferences
  • 前ResGen
  • AfterResGen
  • 编译前
  • 编译后
  • 清洁前
  • 清洁后
  • 发布前
  • 发布后

前缀为BeforeAfter打算在项目中被覆盖的目标。

  • Msbuild 还有目标 `restore` https://learn.microsoft.com/en-us/nuget/consume-packages/package-restore#restore-using-msbuild (2认同)