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

如何让MSBuild按B→A顺序构建且可在VS中单独编译A项目

问题

现有包含项目A和项目B的解决方案,项目A依赖项目B的编译输出,但项目B编译速度较慢,而项目A需要在Visual Studio中频繁单独编译。需要同时满足两个需求:

  • 使用MSBuild进行整体构建时,必须遵循B→A的构建顺序(确保B至少完成一次编译)
  • 在Visual Studio中可以单独编译项目A,无需每次都触发项目B的编译

已尝试的方案

  • 修改.sln文件中的ProjectSection(ProjectDependencies)节点配置,但未达到预期效果
  • 在项目A的.csproj文件中添加项目引用,并设置:
    <ProjectReference Include="..\B.csproj">
        <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
    </ProjectReference>
    
    但仍无法满足单独编译A的需求

补充说明:项目B属于代码仓库的一部分,偶尔会有代码变更,且bin目录已添加到.gitignore中,因此需要保证首次构建或B变更时能自动编译B,日常单独编译A时不触发B的编译。

最优解决方案

直接修改解决方案文件(.sln),将项目B的定义放在项目A的定义之前。这样就能同时满足两个需求:

  • MSBuild执行整体构建时,会按照.sln文件中项目的排列顺序依次编译,自然保证B先于A完成构建
  • 在Visual Studio中右键单独编译项目A时,只会编译A本身,不会触发项目B的编译

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 16:09:56