iT邦幫忙

2022 iThome 鐵人賽

DAY 2
0
Mobile Development

Re: 從零改用 .NET MAUI 技術來繼續過去用 Xamarin 技術開發的一個 App : TopStore系列 第 2

EP02: Check Nuget Package between Xamarin.Forms and .NET MAUI Project

  • 分享至 

  • xImage
  •  

Hello, 各位 iT 邦幫忙 的粉絲們大家好~~~

在本系列文會利用目前 Visual Studio 內建的專案樣本建立一個初始的 .NET MAUI 專案,並且透過此 .NET MAUI 專案來把 TopStore App 的開發從 Xamairn.Forms 轉換到 .NET MAUI 上進行。

本篇是 Re: 從零改成用 .NET MAUI 技術來繼續過去用 Xamarin 開發的一個 App : TopStore 系列 系列文的 EP02。


在上一回 EP01 裡的最後開啟了使用 Xamarin.Forms 建立的 TopStoreApp 專案。

首先,先來檢查一下該 TopStoreApp 開發時,在 Xamarin.Forms 的專案當中使用了那些 Nuget 套件。

在 Xamarin.Forms 當中的專案檔上,透過右鍵選單點選 "管理 Nuget 套件":
01-1

看到已安裝的 Nuget 套件:
01-2

排除掉 Xamarin.FormsXamarin.EssentialsNETStandardLibrary 這幾個 Xamarin.Forms 依賴的套件,那剩下的就是在新的 .NET MAUI 專案當中找到替代的 Nuget 套件來運用。

例如在過去 Xamarin.Forms 版的 TopStore App 有用到一個套件來協助進行 MVVM 框架運用時的開發,在其說明中就提到請用 Maui.Plugin.BaseBindingLibrary 取代:
01-3

接著開啟在上一回建立的 .NET MAUI 版的 TopStoreApp 專案,並且在專案檔上透過右鍵選單,點選 "管理 Nuget 套件"
02

切到 "瀏覽"。
03

先安裝先前 Xamairn.Forms 當中使用到且沒有爭議的 Nuget 套件:

  • System.ComponentModel.Annotations
    04-1
  • Maui.Plugin.BaseBindingLibrary
    04-2

安裝完成後,在 .NET MAUI 的專案當中的相依性,針對各平台進行確認:
04-3

接著來安裝有些許爭議的 SQLite-net-pcl 的 Nuget 套件:
05

安裝 Nuget 套件時沒什麼問題,但會到執行的時候會發生相依平台執行錯誤。

所以如果要在 .NET MAUI 當中繼續使用 SQLite-net-pcl 這個 Nuget 套件的話,接下來直接透過 .NET MAUI 的專案檔編輯。

在 .NET MAUI 的專案檔上右鍵選單點選 "編輯":
06-1

找到 PackageReference 標記:
06-2

並且在此 ItemGroup 當中加入下列標記:

<PackageReference Include="SQLitePCLRaw.core" Version="2.1.2" />
<PackageReference Include="SQLitePCLRaw.bundle_green" Version="2.1.2" />
<PackageReference Include="SQLitePCLRaw.provider.dynamic_cdecl" Version="2.1.2" />
<PackageReference Include="SQLitePCLRaw.provider.sqlite3" Version="2.1.2" />

06-3

上述步驟是在調整 SQLite-net-pcl 相依的底層 Nuget 套件使用(2022/9/19 發佈新版 2.1.2)。

本 EP 介紹所完成的範例程式碼可在此下載



上一篇
EP 01: Create A .NET MAUI Project for TopStoreApp
下一篇
EP03: Transfer XAML and C# Code from Xamarin.Forms to .NET MAUI Project
系列文
Re: 從零改用 .NET MAUI 技術來繼續過去用 Xamarin 技術開發的一個 App : TopStore30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言