システム:.NET Framework 版の今後の予定について
- VisualStudio 2022 を試したところ、NativeImageCompilerが正常に動作しないようで実行時エラーを出すようになってしまいました。不思議なことに、VisualStudio 2022をインストールした状態でVisualStudio 2019で作成しても同様な現象となってしまうため、VisualStudio 2022 のインストール自体ができない状態です。
- NativeImageCompiler はもうメンテされていないであろうから改善は望み薄と思われます。
このため、バグ修正のみの 39.4 を .NET Framework 最終版として作成し、 40.0 からは .NET6 にして環境を移行する予定です。
Comments (7)
-
reporter -
別のIssueが良いのかもしれませんが、.NET 6対応ということでこちらに参考情報をコメントします。
.NET 6では、既定のエンコーディングがUTF-8に変更されています。
ZipArchive
クラスではエンコーディングを指定されていないとファイル名に既定のエンコーディングを使用するので、ファイル名にUTF-8が使用されていないzipファイルが文字化けしてしまいます。(Windows 11でも、エクスプローラーでzipファイルをを作成すると(Code Page 932に収まるのなら)未だにUTF-8が使用されません)
起動時に
Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
をして、開くときは
int codepage = System.Globalization.CultureInfo.CurrentCulture.TextInfo.ANSICodePage; var archive = new ZipArchive(File.OpenRead(path), ZipArchiveMode.Read, leaveOpen: false, Encoding.GetEncoding(codepage));
の様にした方がいいかと思います。
-
reporter 情報ありがとうございます。
いろいろなZIPを作って試してみたのですが文字化けとなるパターンを再現できませんでした。ZipArchiveのドキュメントを読むと、設定しなくても自動でシステムのコードページで読み込まれるようです。
https://docs.microsoft.com/ja-jp/dotnet/api/system.io.compression.ziparchive.-ctor?view=net-6.0
Zip アーカイブファイルを読み取り用に開き、 entryNameEncoding をに設定すると null 、エントリ名は次の規則に従ってデコードされます。
・ 言語エンコードフラグ (ローカルファイルヘッダーの汎用ビットフラグ) が設定されていない場合、現在のシステムの既定のコードページを使用してエントリ名がデコードされます。
・ 言語のエンコードフラグが設定されている場合は、UTF-8 を使用してエントリ名がデコードされます。以上から現状のままでよいと判断します。なにか問題がありましたらご指摘ください。
-
reporter すみません、もう一度テストしたら文字コードの問題を確認できました。対応します。
(.NET Frameworkの環境でテストしてしまっていたのかも…)
-
reporter - ZIP展開にOSのエンコーディングを適用 (refs
#1180)
→ <<cset 6d66606ecd9a>>
- ZIP展開にOSのエンコーディングを適用 (refs
-
reporter - エンコード対策追加 (refs
#1180)
→ <<cset 8e19c5c1d808>>
- エンコード対策追加 (refs
-
reporter - changed status to closed
.NET8 now
- Log in to comment
フレームワークを.NET6に変更 (refs
#1180) - NativeImageCompiler を無効化 - 各種警告に対応 -- 高DPI設定の警告はFormライブラリも使用しているためと思われる -- PdfiumViewerの警告は保留→ <<cset 5420bd50d601>>