Next Design V3.0 から V3.1 へのアップデート時の注意点
プロジェクトファイル
V3.0 から V3.1 へのアップデートに伴うファイル保存形式の変更はありません。V3.1 で保存されたファイルは V3.0 でも編集できます。
エクステンション
Next Design 本体のプラットフォームが .NET Core 3.1 から .NET 6 に変更となります。 これに伴い V3.0 向けに開発されたエクステンションを V3.1 で引き続き使用する場合は、次の対応をお願いいたします。
- エクステンションの .NET 6 への移行
- (23/08/11追加)処理系依存により振る舞いの変わるAPIの確認
- (23/08/11追加).NET6移行時のトラブルシューティング
.NET 5 および .NET 6 の一部には破壊的変更があり、それらに該当する場合は個別に対応いただく必要があります。
また、利用されている外部の依存パッケージの互換性についてはユーザー様にてご確認いただく必要があります。
.NET Core 3.1 のサポートは終了しています。今後のサポートを受けるためにも .NET 6 への移行をご検討ください。
(Next Design の API は V3.0 と V3.1 で互換性があり、.NET Core 3.1 と .NET 6 も互換性に配慮されているため、ほとんどのエクステンションはそのまま動作します。)
エクステンションの .NET 6 への移行
.NET 6 対応のエクステンションを Visual Studio で開発するためには、Visual Studio 2022 が必要です。
(Visual Studio 2019 では .NET 6.0 以降をターゲットにすることはサポートされていません)
V3.0 向けに開発されたエクステンションを .NET 6 へ移行するための手順は次の通りです。
-
.NET 6.0 SDK(Windows 用 x64, x86 両方)をインストールします。(ダウンロードはこちら)
-
(23/08/11追加) 以下の警告が出る場合は、プロジェクトファイル(プロジェクト名.csproj)のSdk設定を [Microsoft.NET.Sdk] に変更します。
警告メッセージ:
Microsoft.NET.Sdk.WindowsDesktop SDK を使用する必要はなくなりました。ルート プロジェクト要素の SDK 属性を 'Microsoft.NET.Sdk' に変更することをご検討ください。対象ファイル:プロジェクト名.csproj
Visual Studio 2022のプロパティ設定からは変更できないため、Visual Studioで対象ファイルをクリックし開くか、テキストエディタで開いて編集します。
修正前プロジェクト設定の例:
<!--csprojの設定--> <Project Sdk="Microsoft.NET.Sdk.WindowsDesktop"> </Project>修正後プロジェクト設定の例:
<!--csprojの設定--> <Project Sdk="Microsoft.NET.Sdk"> </Project> -
Visual Studio 2022 でソリューションを開きます。
-
ソリューション エクスプローラーでプロジェクトを右クリックし、[プロパティ] を実行してプロジェクトのプロパティを表示します。
-
左のナビゲーションから [アプリケーション > 全般] を選択し、[ターゲットフレームワーク] の設定を [.NET 6.0] に変更します。
-
ソリューション エクスプローラーでプロジェクトを右クリックし、[NuGet パッケージの管理] を実行して [NuGet パッケージ マネージャー] を表示します。
-
[インストール済み] タブを選択して、次のパッケージを対応バージョン以降の最新の安定版に更新します。
対象パッケージ 対応バージョン NextDesign.Desktop 3.1.1.30609 以降 NextDesign.Core 3.1.1.30609 以降 NextDesign.Desktop.ExtensionPoints 1.1.1.30519 以降 -
その他にご利用中のパッケージを .NET 6.0 対応のものに更新します。
-
プロジェクトをリビルドします。
-
パッケージの更新などによりビルドに失敗する箇所があれば修正します。
-
エクステンションの動作を確認します。
ビルドに失敗する場合、.NET 5 および .NET 6 の破壊的変更が影響している可能性があります。以下のページもご参照のうえ、ご対応ください。
なお、上記手順でビルドされたエクステンションは V3.0 で動作しません。V3.1 との組み合わせで動作します。
(23/08/11追加)処理系依存により振る舞いの変わるAPIの確認
- IDiagram.GetSelectedShapes
- ISequenceDiagram.GetSelectedShapes
- IEditor.GetSelectedElements
- ITreeGrid.GetSelectedNodes
- IGrid.GetSelectedRows
- IForm.GetSelectedControls
- IProduct.SelectedFeatures
- INavigator.SelectedItems
- ITracePage.SelectedNodes
- IEditorView.SelectedModels
処理系の変化(.NETCore3.1⇒.NET6)に伴い、選択しているモデルを取得するAPIの動作が変わります。
◆V3.0(.NETCore3.1):
複数のモデルを選択している場合、多くのケースで選択順にモデルが格納されるます。
◆V3.1(.NET6):
複数のモデルを選択している場合、格納されるモデルの順序に規則性がなくなります。
(選択順との依存性がなくなります)
取得したモデルの順序を意識したエクステンションの実装になっている場合に影響があります。
本変更について影響がないかご確認頂き、問題がある場合は見直しが必要になります。
影響を受けるAPIは以下です。
名前空間:NextDesign.Core
名前空間:NextDesign.Desktop
(23/08/11追加).NET6移行時のトラブルシューティング
-
.NET6移行時、Next Design 開発チームが遭遇した問題と解消方法を参考情報として掲載します。
- .NET6移行時のトラブルシューティングを参照してください。