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

编译.NET 7.0 C++/CLI DLL遇C5275等错误求解析

问题:C++构建.NET 7.0程序集DLL时的编译错误及Facade Assembly疑问

我尝试用C++代码构建适用于.NET 7.0的程序集DLL时,编译启动前就报出以下错误(注:按错误代码判断这应该是警告而非错误):

1>C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\7.0.20\ref\net7.0\mscorlib.dll(1,1): error C5275: facade assembly 'mscorlib.dll' being imported under '/clr'; missing option '/clr:netcore'?
1>C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\7.0.20\ref\net7.0\Microsoft.CSharp.dll : fatal  error C1001: Internal compiler error.

推测第二个错误由第一个错误引发。该DLL使用托管类封装原生代码,在.NET Framework(最高4.7.2)下运行正常,仅引用System.Drawing.Common.dll,且我并未显式引入mscorlib.dll。请问“facade assembly”指的是什么?


更新:

发现一个线索:尽管项目设置了clr:netcore属性,但单个.cpp文件仍使用标准clr。另外IDE不允许指定-clr:netcore,添加为附加选项也无效,尚未找到能直接在项目文件中生效的语法。


更新2:

可通过将公共语言运行时支持字段手动改为NetCore(忽略可选选项),强制以.NET而非.NET Framework进行编译。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 01:39:59