使用.Net Core开发WPF App系列教程( 三、与.Net Framework的区别)
使用.Net Core开发WPF App系列教程
基础知识
二、在Visual Studio 2019中创建.Net Core WPF工程
三、与.Net Framework的区别
五、WPF中的布局
SDK样式项目
新建一个WPF工程,对比.Net Framework和.Net Core的项目文件
在.Net Framework的csproj文件中,可以看到记录了很多信息。
在.Net Core的csproj中,只看到很少的记录信息。默认的设置已经不再显示了,如输出路径,平台等。
组件的引用已经默认包含在"Microsoft.NET.Sdk.WindowsDesktop"SDK中了。这种在项目文件中的 <Project>
元素中包含了SDK 属性的就称为SDK样式的项目文件(SDK-style projects)
Nuget包引用
创建一个.Net Framework WPF工程和.Net Core WPF工程,同时引用 BlurWindow和MongoDB.Driver包。可以看到
在.Net Framework中,Nuget包引用是通过packages.config文件来记录,且会在文件中列出每一个引用的组件
而在.Net Core中,是直接记录在项目工程文件(.csproj)里,并且是以包引用(PackageReference)的形式记录,更加简洁。
说明:
1、从Visual Studio 2017 Version 15.7版本开始,支持从packages.config转换到PackageReference
转换方法如下:
在packages.config上右键 ,选择【将 packages.config迁移到PackageReference】。
转换完成后,packages.config文件被删除,引用的Nuget包会被记录在项目工程文件(.csproj)里。
当我们把WPF程序从.Net Framework迁移到.Net Core时,就需要进行以上操作。
2、.Net Core WPF项目工程文件(.csproj)中不再记录当前项目包含的文件。通过检测项目工程文件路径下的文件来进行自动添加。
代码访问安全性(CAS)
.NET Framework提供了一种机制,用于对在同一应用程序中运行的不同代码实施不同级别的信任,称为代码访问安全性(CAS)
在.Net Core中,不再支持Code Access Security(CAS)代码访问安全性功能。
这个功能平常用得少,这里不作详细介绍,可以在推荐阅读中找到介绍CAS的链接进行了解。
推荐阅读
https://docs.microsoft.com/en-us/dotnet/desktop-wpf/migration/differences-from-net-framework
https://docs.microsoft.com/en-us/dotnet/framework/misc/code-access-security
https://docs.microsoft.com/en-us/dotnet/core/tools/csproj
https://docs.microsoft.com/en-us/nuget/consume-packages/migrate-packages-config-to-package-reference
https://docs.microsoft.com/en-us/nuget/resources/check-project-format