You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何区分Solution Build与Project Build?求识别解决方案构建的属性

仅在直接构建项目时触发MSBuild的Shell命令

要实现仅在直接构建单个项目时执行Shell命令,而跳过解决方案构建的场景,可以利用MSBuild内置的$(BuildingSolution)属性:

  • 执行解决方案构建时,该属性会被自动设置为true
  • 直接构建单个项目时,该属性未定义或为false

只需给你的TypeScriptBuild目标添加条件判断,让它仅在非解决方案构建时运行:

<Target Name="TypeScriptBuild" BeforeTargets="Build" Condition=" '$(BuildingSolution)' != 'true'">
  <ItemGroup>
      <TypeScriptCompile Remove="ts\**\*.ts" />
  </ItemGroup>
  <Exec Command="npm i" />
  <Exec Command="npm run build" ConsoleToMsBuild="True" />
  <Exec Command="powershell start-process 'npm' -ArgumentList 'run','watch'" Condition=" '$(Configuration)' == 'Debug'" />
</Target>

说明

添加Condition=" '$(BuildingSolution)' != 'true'"后,整个TypeScriptBuild目标只会在直接构建项目时触发,解决方案构建时会被跳过。原有的Debug模式下启动watch的条件可保留,不影响逻辑。

内容的提问来源于stack exchange,提问作者msetam

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 14:57:29