添加为链接的类会被编译到哪个目标框架?附.NET项目场景疑问
问题解答
问题1:将类以链接形式添加到项目时,该类会被编译为哪个目标框架?
当你把类文件以链接形式添加到项目中时,这个类会遵循它所加入的目标项目的框架设置完成编译。说白了,链接文件只是指向原始文件的一个“引用指针”,编译阶段会被当作当前项目的原生文件处理,完全按照当前项目的目标框架、编译配置来生成代码,和原始文件所在项目的框架没有直接关联。
问题2:具体场景下的编译目标确认
针对你描述的场景:
- 目标为.NET Standard的项目包含
Person.cs; - 将该文件以链接形式加入目标为.NET Framework 4.6.2的类库项目。
答案是:这个链接的Person.cs会以.NET Framework 4.6.2为目标框架编译。
核心原因是:链接文件在构建过程中是当前项目的一部分。.NET Framework 4.6.2项目编译时,会把所有纳入的文件(不管是项目目录内的物理文件还是链接过来的文件)都套用自身的目标框架、编译器规则来处理,原始.NET Standard项目的编译设置不会影响这个链接文件在新项目里的编译行为。
这里给个小提示:你需要确保Person.cs里的代码在.NET Framework 4.6.2环境下兼容——毕竟.NET Standard是通用规范,部分API在.NET Framework 4.6.2里可能存在差异或缺失,要是代码用到了这类API,编译时会抛出错误。
内容的提问来源于stack exchange,提问作者LP13
相关产品推荐
相关产品推荐

