XamarinからNetMAUIへ移行中(2):名称変換や削除

,

フォルダー構造を作成して、所定の位置に既存ファイルを移動したら、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部分
PositionLoation
DelegateCommandRelayCommand
[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
削除

以後のブログに続きます。


コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

PAGE TOP