Microsoft .NET MAUI part10 [Xamarin] (579レス)
上下前次1-新
1: 2022/12/19(月)19:29 ID:b7LRFmhz(1/3) AAS
Xamarinと.NET MAUIのスレッドです。
C#でクロスプラットフォームのアプリを開発できるフレームワーク
無料、クロスプラットフォーム、オープンソース。
対応プラットフォームは、Windows, Android, iOS, macOS, Linuxなど
前スレ
Microsoft .NET MAUI part9 [Xamarin]
2chスレ:tech
550: 2024/07/28(日)09:40 ID:X+I1BOmv(1) AAS
MVVMは多人数である程度以上の規模になるともう意味が分からんことがあるから
値を間違いなく代入してるのに変わらないとかありすぎる
あるところでフラグセットしても別のところでリセットしてたりとかでバグつぶしても
他のメンバーがまた勝手に状態を逆にしてくる
こんなもん個人開発でしか使えんわ
551: 2024/07/28(日)12:26 ID:gfCY27F/(1) AAS
双方向つうのがまず無理があんだよ
そのため方向を制限する機能はついてんだけど
552: 2024/07/30(火)11:08 ID:ujxLRMd0(1) AAS
MVVMって書いてるから違うと思うがprism使ってたら代入と参照のインスタンスが違うなんてことはよくある
ほとんどはDI理解不足だと思う
自分が知らんだけかもしれんがJAVAみたいにインスタンスIDがwatchでみたいわ
553: 2024/09/12(木)13:15 ID:DsK5GYQ3(1) AAS
UWPがまさかの.NET 9対応
UWP with .NET 9 and native AOT
WinUI3の次の予定まさかのDesigner
554: 2024/09/12(木)17:50 ID:IehjdS1p(1) AAS
Designerやんのか
555: 2024/09/15(日)08:51 ID:wfliUWkY(1/2) AAS
.NET 9のpreviewが出たからインストールしてみたが
WPFのWindows 11テーマいいな
とりあえず生き返った感じ
556: 2024/09/15(日)09:04 ID:KVHb4Sbd(1) AAS
良き良き
WPFのtrimming/NativeAOT対応も頼んます
557: 2024/09/15(日)17:05 ID:wfliUWkY(2/2) AAS
どれだけFluentか知らんがとりあえずDarkテーマあるだけよし
つか、ツールバーにのせたら一部スタイリングバグってるな
558: 2024/12/22(日)17:01 ID:vBdGcGsY(1) AAS
LTSでもサポート期間が短すぎる
PC1台買い換えるまですら持たないとか
どこも同じなのかな
559: 2024/12/22(日)17:51 ID:MuB++1G9(1) AAS
VSアプデしたらMAUIプロジェクトビルドできなくなったり、今まで問題なく走ってたのが動かなくなったり
いい加減にしてもらいたい
560: 01/08(水)18:14 ID:fnNawPvK(1) AAS
Line Loginのnugetありますか?
561: 05/01(木)15:18 ID:KEHZq1lV(1) AAS
なんかVisual Studioビルド時に固まること多くない?
AndroidとWindowsでリリース用のパッケージを作るとビルドが永遠に終わらなくなることが多くなった
562: 05/11(日)05:42 ID:CeAh77wR(1) AAS
使用不可な機能を表示するな!!
Microsoft!Windows!死ね!死ね!死ね!地獄へ堕ちろ!
563: 05/16(金)21:57 ID:80Ky213p(1) AAS
17.14でAndroid向けの新しいデバッガー、チェックをONにしたけど
何が変わったのだろう・・・
564: 05/19(月)16:24 ID:8rQCWgIs(1) AAS
感じるんだ
565(1): 05/25(日)02:50 ID:ciKb89UP(1) AAS
なんか最近のアップデートを適用したら
実機のAndroid8/10でアプリをデバッガから起動しようとしたら、起動するなり停まってしまう
実機のAndroid13の機種やエミュレーターだと8-15まで全部問題なし
実機でタップして起動するのは問題ないけど、おま環なの?
566: 05/31(土)23:10 ID:C/Qi+mMK(1) AAS
>>565
AndroidはAndroid 12以降をターゲットにすればいい。
そんな古いバージョンを使っているような会社は切り捨てろ。
567(3): 08/10(日)22:56 ID:epktwExL(1) AAS
みんなおらんの?
.net8のプロジェクトを.net9にしたらリリースモードでアプリが起動しなくなったんだけど
どうやってデバッグしたら良いの?
デバッグモードだとしれっと動くのよ・・・
568: 08/11(月)00:17 ID:aP3ZTG94(1) AAS
ライブラリが足りないか、リリース用のDLLをネットから持ってきたため実行権限がないとか。
DLLのプロパティ開いてブロックかかってないか見てみたら?
569: 08/11(月)09:49 ID:wszRpGrc(1) AAS
ほんとに起動しないの?起動したけどエラーで落ちてるとかでは?
570: 08/11(月)11:39 ID:m0YU2zbS(1) AAS
コマンドプロンプトの画面から呼び出したらエラー内容みえたりしないのかな。
571: 567 08/11(月)13:13 ID:MNMrhvpr(1) AAS
copilotさんにログ貼り付けたりして頑張ったら
trim外せって言われて外したら動いた
トリム外すだけだとなんかリンカーが通らないから変なオプションも手動で書くように言われて書いたら解決した
Trimで何が消えたんだよ・・・・
<PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Release|net9.0-android35.0|AnyCPU'">
<PublishTrimmed>false</PublishTrimmed> <=ここがリリースだとデフォルトtrue
<RunAOTCompilation>false</RunAOTCompilation> <=copilotさんにかけと言われて書いた
</PropertyGroup>
572: 08/11(月)13:26 ID:p1wBekRk(1) AAS
今回の2つの設定変更は、.NET 9 で Release ビルドのデフォルト動作が変わったことによる起動不能問題を回避しています。
---
① <PublishTrimmed>false</PublishTrimmed>
意味
IL trimming(未使用コード削除) を無効化します。
背景
.NET 9 では Release ビルド時のデフォルトで PublishTrimmed が true になり、リンク時に「使っていない」と判断されたコードを削除します。
問題点
リフレクション(Activator.CreateInstance や JsonSerializer)や動的ロードは、静的解析では使用箇所が見えません。
その結果、必要な型やメソッドが「不要」と誤判断されて削除され、実行時に
MissingMethodException
TypeLoadException
などが発生して、アプリが起動しなくなります。
対応
PublishTrimmed=false により trimming を完全に無効化 → 必要なコードが削除されず起動できるようになります。
② <RunAOTCompilation>false</RunAOTCompilation>
意味
AOT(Ahead-of-Time コンパイル) を無効化します。
背景
Android の Release ビルドでは、通常 IL を事前にネイティブコードに変換して配布(AOT)が行われます。
.NET 9 では AOT の挙動や組み合わせが変わり、Trim や Linker とセットでより aggressive(厳格)になりました。
問題点
AOT は起動時間短縮やパフォーマンス改善に有効ですが、以下の場合にクラッシュしやすくなります:
動的コード生成(Expression Trees, Reflection.Emit)
ジェネリック型のランタイム生成
Trim 済みコードとの依存関係不整合
.NET 9 での変更により、以前は動いていたコードが AOT 後に動かなくなるケースが増えました。
対応
RunAOTCompilation=false で JIT 実行に戻し、AOT に起因するクラッシュを回避します。
573: 08/11(月)13:28 ID:QPpYRl4f(1) AAS
まとめ
.NET 9 で Release ビルドの最適化が強化
Trim(未使用コード削除)→ 必要なコードが消える
AOT(事前ネイティブ化)→ 動的生成や特殊ケースが壊れる
今回の設定はそれらを無効化して「安全寄りのビルド」に戻した
メリット: 確実に動く
デメリット: APKサイズ増加・起動時間やパフォーマンス低下
本番運用に向けた改善案
Trim 無効化の代わりに
DynamicDependency や Preserve 属性で必要な型を明示
TrimmerRootAssembly 設定を活用
AOT 無効化の代わりに
動的コード依存を減らす
AOT 対応コードへの置き換え
要するに、この変更は「.NET 9 から Release ビルドの安全マージンが減ったので、自分で安全側に戻した」という状態です。
もしサイズや速度も重視するなら、無効化ではなく「安全に最適化を活かす設定」にしていく必要があります。
574: 08/12(火)03:31 ID:6s6e/dJu(1) AAS
互換性ぶっ壊しといて安全です言われてもなあ
575: 08/12(火)06:00 ID:/Wr+0zZA(1) AAS
余計なことしかしない
576: 08/12(火)11:02 ID:Hn1Qu25p(1) AAS
Trimで何を削ったのかさくっとリスト出してくれればいいがそうはならないのよな
577: 08/12(火)14:25 ID:VCS3T4pM(1) AAS
AOTは実行時例外出しまくったから即オフったわ
あんなもんデフォルトとか正気の沙汰じゃない
578: 567 08/12(火)18:38 ID:PHJLTY/j(1/2) AAS
iOSでも試したけど
MtouchNoSymbolStripをfalseにしないと俺のアプリ起動に失敗しちゃう
gccのtrimでこんなダメダメなの聞いたこと無いんだが・・・
579: 567 08/12(火)20:34 ID:PHJLTY/j(2/2) AAS
ダメだった
動いたの古いビルドだった
.NET9にすると、iOSなんか、テンプレートのカウントプログラムすら動かなくなるな・・・
なんだこりゃ
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ
ぬこの手 ぬこTOP 0.898s*