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

添加NuGet打包引用后项目构建失败:未引用.NETFramework v4.7.2

解决VC++项目添加NuGet.Build.Tasks.Pack后目标框架检测失败问题

问题原因

NuGet.Build.Tasks.Pack包默认针对SDK风格的.NET项目设计,这类项目使用TargetFrameworks(复数)属性声明目标框架;而传统VC++项目(.vcxproj)使用的是TargetFrameworkVersion属性,两者不匹配导致NuGet在解析包资产时无法识别已配置的.NET Framework 4.7.2框架。

解决方案

  1. 补充TargetFrameworks属性到项目文件
    在已有的PropertyGroup Label="Globals"节点中,添加TargetFrameworks属性(使用框架简写格式net472对应.NET Framework 4.7.2),与原有的TargetFrameworkVersion共存:
<PropertyGroup Label="Globals">
  ...
  <TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion>
  <TargetFrameworks>net472</TargetFrameworks>
  ...
</PropertyGroup>
  1. 清理并重新执行构建流程
    执行以下命令彻底清理项目文件,再重新执行restore和后续操作:
git clean -xdf
msbuild <solution> "/t:<project>" /t:restore /p:Configuration=Release
msbuild <solution> "/t:<project>" /t:clean,build,pack /p:Configuration=Release

验证说明

添加TargetFrameworks属性后,NuGet就能正确识别项目的目标框架版本,不会再抛出"未引用.NETFramework,Version=v4.7.2"的错误。该修改不会影响原有VC++项目的编译逻辑,仅用于兼容NuGet打包工具的框架检测逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 23:10:27