在我们使用.Net进行开发的时候,往往会遇到.Net Framework、.Net Core 和 .Net Standard 各种平台不通的问题,首先我们要大概了解一下这三者间的关系,这里只放一张图,不展开叙述了。
环境设置
首先,需要的是 Visual Studio 2017 以上 的版本,然后,我当前项目多平台编译设置是 .Net Framework 4.6 和 .Net Standard 2.0 。
操作方法
其实说起来也很简单,在VS2017以后,VS自身已经支持进行多目标平台的编译了,但是这个功能需要手动修改工程设置文件,将 TargetFramework
修改为复数形式的 TargetFrameworks
就可以了,使用npp等其他软件打开 .csproj 可以看到:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
</PropertyGroup>
</Project>
将其修改为
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFrameworks>netstandard2.0;net46</TargetFrameworks>
</PropertyGroup>
</Project>
当然,其实更科学的方法是制作成Nuget包进行引入和操作,但是这个需要准备的比较复杂,这个后面再说。
参考
中文翻译:https://www.cnblogs.com/haogj/p/9220653.html
原文:https://www.ben-morris.com/sharing-libraries-between-net-core-and-net-framework-applications/