使用.Net Core开发WPF App系列教程( 三、与.Net Framework的区别)


 

SDK样式项目

新建一个WPF工程,对比.Net Framework和.Net Core的项目文件

.Net Frameworkcsproj文件中,可以看到记录了很多信息。

.Net Corecsproj中,只看到很少的记录信息。默认的设置已经不再显示了,如输出路径,平台等。

组件的引用已经默认包含在"Microsoft.NET.Sdk.WindowsDesktop"SDK中了。这种在项目文件中的 <Project> 元素中包含了SDK 属性的就称为SDK样式的项目文件(SDK-style projects)

 

 

 

Nuget包引用 

创建一个.Net Framework WPF工程和.Net Core WPF工程,同时引用 BlurWindowMongoDB.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

posted @ 2020-08-05 15:21  zhaotianff  阅读(4910)  评论(0编辑  收藏  举报