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

C++(vcxproj)项目能否引用TargetFramework为net5.0的C#项目?

解决方案

问题根因

你遇到的报错核心原因是版本标识不匹配:vX.X格式的TargetFrameworkVersion是.NET Framework专属的版本标识,.NET 5+不存在这种格式的版本号,MSBuild识别v5.0时会默认匹配不存在的.NET Framework v5.0,自然和C#项目的net5.0 TFM不兼容。另外传统C++/CLI项目默认适配.NET Framework,必须调整项目配置才能支持.NET 5+。

具体操作步骤

  • 确认Visual Studio 2022已安装「C++/CLI 支持 for .NET」组件,没有的话在Visual Studio Installer的工作负载里勾选安装
  • 右键C++项目选择卸载项目,再次右键选择编辑vcxproj文件,做如下修改:
    • 删除原有<TargetFrameworkVersion>vX.X</TargetFrameworkVersion>配置行
    • 在第一个<PropertyGroup>节点下新增配置:<TargetFramework>net5.0-windows</TargetFramework>
    • 查找<CLRSupport>节点,将值从原来的true改为NetCore
  • 保存vcxproj文件,重新加载项目,重新生成解决方案即可

注意事项

  • .NET 5+的C++/CLI仅支持Windows平台,因此TFM必须携带-windows后缀
  • C++/CLI项目不支持AnyCPU,你需要将C#类库和C++项目的平台目标统一设置为x86或x64
  • 若你需要同时兼容旧版本基于.NET Framework的C++项目,可以给C#类库配置多目标:将C#项目的<TargetFramework>net5.0</TargetFramework>改为<TargetFrameworks>netstandard2.0;net5.0</TargetFrameworks>,两种框架版本的项目都可以正常引用

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 01:45:04