如何移除.NET 8.0 C++类库对.NET Framework 4.7.2的依赖?
.NET 8.0 C++类库出现.NET Framework 4.7.2依赖的原因及移除方案
依赖产生的原因
- Visual Studio 2022的C++/CLI类库模板默认引入了.NET Framework兼容层,即便目标框架设为.NET 8.0,项目文件里的隐式配置、默认引用仍会带上对.NET Framework 4.7.2的依赖,空项目也受模板默认设置影响。
- 安装项目的依赖检测逻辑会读取DLL元数据或项目残留配置,将这个兼容层依赖判定为必要运行时依赖。
能否移除及解决方法
可以完全移除该依赖,操作步骤如下:
- 编辑C++类库的
.vcxproj项目文件,删除<TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion>这类指向.NET Framework的配置项,同时移除所有引用.NET Framework程序集的<Reference>节点。 - 打开项目属性的「常规」选项卡,确认「公共语言运行时支持」设置为
.NET 8.0,避免混合模式编译。 - 清理项目后重新生成,将新生成的DLL加入安装项目,此时依赖检测应仅识别.NET 8.0。
- 若安装项目仍误报,可手动编辑安装项目的依赖列表,移除.NET Framework 4.7.2条目,强制指定仅依赖.NET 8.0。
内容的提问来源于stack exchange,提问作者Yves Daoust
相关产品推荐
相关产品推荐

