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

为何csproj中定义的MSBuild属性无法作用于项目依赖的还原与构建?

问题原因

MSBuild 中,项目内定义的属性默认是当前项目的本地属性,不会自动传递给被引用的依赖项目。你在命令行通过/p:Net48=True传入的是全局属性,会应用到本次构建涉及的所有项目(包括被 B 引用的 C 项目),所以能正常生效;而你直接写在 B.csproj 里的<Net48>True</Net48>只有 B 自己能读取,C 项目构建时拿不到这个属性值,就会默认走 net5.0 的配置,和 B 的 net48 目标框架不兼容导致构建失败。

解决方法

你需要在ProjectReference节点上配置Properties元数据,手动把 B 的 Net48 属性传递给引用的 C 项目,修改 B.csproj 的 ProjectReference 部分即可:

<ProjectReference Include="..\C\C.csproj">
  <Properties>Net48=$(Net48)</Properties>
</ProjectReference>

如果还有其他需要传递的属性,用分号分隔即可,比如<Properties>Net48=$(Net48);OtherProp=$(OtherProp)</Properties>。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 04:54:02