使用.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