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

多目标项目中如何仅执行一次XSD类生成脚本?

正确配置方案

要让XSD生成类的脚本在多目标项目中仅执行一次,核心是利用MSBuild针对多目标项目的外层构建标识,避免在每个目标框架的单独构建中重复触发。具体配置如下:

  1. 在你的.csproj文件中添加自定义目标,替换原有的PreBuild事件:
<Target Name="GenerateXsdClasses" BeforeTargets="BeforeBuild" Condition="'$(IsCrossTargetingBuild)' == 'true'">
  <!-- 替换为你的脚本执行命令 -->
  <Exec Command="你的脚本路径及执行参数" />
</Target>
  1. 关键参数说明:
  • IsCrossTargetingBuild:MSBuild自动设置的属性,**外层构建(触发所有目标框架的顶层过程)**中该值为true,每个单独目标框架的内部构建中为false,通过这个条件确保脚本只执行一次。
  • BeforeTargets="BeforeBuild":指定目标在整个构建流程的前期执行,早于分发到各个目标框架的内部构建。

如果之前尝试DispatchToInnerBuilds未生效,可检查是否遗漏了条件判断,或者直接使用上述BeforeBuild+IsCrossTargetingBuild的组合,该方案在VS2022环境下稳定有效。

注意:不要使用默认的PreBuild事件,它会在每个目标框架的构建前重复触发。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 04:37:32