フォルダー構造を作成して、所定の位置に既存ファイルを移動したら、namespaceなどを対応するNetMAUI用に変換します。また不要なファイルを削除します。

1)Page(画面用)XAMLファイルのnamespace変換
Pageのxamlファイル先頭のxamarin部分をNetMAUIへ変更します。
XamarinのPageヘッダー部分 | NetMAUIのPageヘッダー部分 |
---|---|
<?xml version=”1.0″ encoding=”UTF-8″?> <ContentPage xmlns=”http://xamarin.com/schemas/2014/forms“ xmlns:x=”http://schemas.microsoft.com/winfx/2009/xaml” | <?xml version=”1.0″ encoding=”UTF-8″?> <ContentPage xmlns=”http://schemas.microsoft.com/dotnet/2021/maui“ xmlns:x=”http://schemas.microsoft.com/winfx/2009/xaml” |
2)Page用のxaml.csファイルから、xamarin.formを削除
Pageのxamlファイルに対応するxaml.csファイルからxamarin部分を削除します。
XamarinのPageのxaml.cs部分 | NetMAUIのPageのxaml.cs部分 |
---|---|
using Xamarin.Forms; |
3)Xamarinの部品やパッケージをNetMAUI用に変更
GUI部品やパッケージをXamarin用からNetMAUI用に変更しますのでusing設定を変えます。またmvvmパッケージはPrismから今後の機能拡張を期待してCommunityToolkit.Mvvmに変えます。
Xamarinのcs部分 | NetMAUIのcs部分 |
---|---|
using Xamarin.Forms.Maps; | using Microsoft.Maui.Maps; |
using Xamarin.Essentials; | 削除 |
using Xamarin.Forms.Maps.iOS; | using Microsoft.Maui.Maps; |
using Xamarin.Forms.Platform.iOS; | 削除 |
using Xamarin.Forms.Xaml; | 削除 |
using Prism.Commands; | using CommunityToolkit.Mvvm.ComponentModel; using CommunityToolkit.Mvvm.Input; |
4)画像ファイル名称変更
Xamarinで使用して居た画像ファイル名称がNetMAUIではエラーになる場合があります。
例えばXamarinでpin_Blue.pngを使用して居た場合、以下の様なエラーになります。
/usr/local/share/dotnet/packs/Microsoft.Maui.Resizetizer.Sdk/7.0.101/targets/Microsoft.Maui.Resizetizer.targets(9,9): Error: One or more invalid file names were detected. File names must be lowercase, start and end with a letter character, and contain only alphanumeric characters or underscores: pin_Blue (GeoDiveM2)
NetMAUIで画像を高速に表示する為にResizetizerが追加された様で、その条件が「画像ファイルの名称は小文字と下線だけ」の様ですので、該当する画像ファイル名称を全て変更します(=沢山あったので地味に大変でした)
Xamarinの画像ファイル名称 | NetMAUIの画像ファイル名称 |
---|---|
Resizetizerでエラーが出た場合 例)pin_Blue.png | 名称を小文字と下線だけにする 例)pin_blue.png |
5)コードの変更や削除
コンパイルエラーが出るたびに、対応部分を修正・変更して行きます。GeoDiveExaの場合は以下の様な変更が必要でした(==>その他に機能作成のために変更がありますので、続きのブログで書いていきます)。
XamarinのPageのxaml.cs部分 | NetMAUIのPageのxaml.cs部分 |
---|---|
Position | Loation |
DelegateCommand | RelayCommand |
[assembly: ExportRenderer(typeof(CustomMap), typeof(CustomMapRenderer))] | 削除 |
<Color設定の名称変更–>Colors> 例)Color.Green | 例)Colors.Green |
6)ファイルの削除
コンパイルエラーが出るたびに、対応部分を修正・変更して行きますが、不要なファイルもありますので削除していきます。
Xamarinのファイルやコード | NetMAUIののファイルやコード |
---|---|
Assemblyinfo.cs | 削除 |
DEVICE関連ファイル | 削除 |
<iOSの不要ファイル削除> Entitlements.plist iTunesArtwork iTunesArtwork@2x Main.cs | 削除 |
以後のブログに続きます。
コメントを残す