ProGuide NET 8 Upgrade - EsriJapan/arcgis-pro-sdk GitHub Wiki

Language:      C#
Subject:       Framework
Contributor:   ArcGIS Pro SDK Team <[email protected]>
Organization:  Esri, http://www.esri.com
Date:          10/06/2024
ArcGIS Pro:    3.4
Visual Studio: 2022

概要

リリース 3.3 で、ArcGIS Pro は Microsoftの.NETの最新バージョン(旧称「.NET Core」)である .NET 8 に移行し、Long Term Support(LTS)が提供されました。

  1. これは 変更ではありません
  2. Pro API には、再コンパイルが必要な変更はありません。
  3. ArcGIS Pro 3.0 ~ 3.2 にデプロイされたアドインは、3.3 およびそれ以降の 3.x リリースでも再コンパイルなしで実行できます。

.NET 6 から.NET 8 への移行

ArcGIS Pro SDK .NET 開発を 3.3+ で進める場合、3.0 から 3.2 でビルドされたアドインを Pro 3.3+ に対して再コンパイルするには、次の移行手順を参照してください。これは、「アドイン」のみが特に言及されていますが、一般的にすべての .NET 6 Pro SDK 3.0 ~ 3.2 開発プロジェクトに適用されます。

Pro 3.3+ がインストールされていると仮定すると...

  1. Visual Studio 2022 をバージョン 17.8 以降にアップグレードします (ArcGIS Pro SDK の要件を参照してください。)。Visual Studio の更新プロセスの一環として、.NET 8 がインストールされていることを確認する。
  2. 既存の Visual Studio 2022 プロジェクトのターゲット フレームワークを .NET 8 に変更します。

ChangingTargetFramework.png

  1. Config.daml ファイルを開き、AddInInfo タグの desktopVersion 属性を 3.3 に変更する。 desktopVersion.png
  1. プロジェクトで Pro SDK「Esri.ArcGISPro.Extensions」NuGet パッケージを使用している場合は、バージョン 3.3 以降にアップグレードします。NU1202 Package Esri.ArcGISPro.Extensions30 3.3.0.52579 is not compatible with net6.0-windows7.0 というエラーが表示される場合は、最初にターゲット フレームワークを .NET 8 に変更し忘れていることを意味します。
  2. Microsoft.Windows.Compatibility Nuget を使用している場合は、バージョン8.0.3 以上に更新してください。
  3. プロジェクトが他の NuGet パッケージを使用している場合、それらが .NET 8 と互換性があることを確認して、必要に応じて更新してください。
  4. 必要に応じて、アドインで "Fix Pro References" Pro SDKツールを実行します。
  5. リコンパイルします。

注意: 以下のようなエラーが表示された場合:

Error	CS1705
Assembly 'ArcGIS.Desktop.Framework' with identity 'ArcGIS.Desktop.Framework, Version=13.3.0.0, Culture=neutral, 
   PublicKeyToken=8fc3cc631e44ad86' uses 'System.Runtime, Version=8.0.0.0, Culture=neutral, 
   PublicKeyToken=b03f5f7f11d50a3a' which has a higher version than referenced assembly 'System.Runtime' 
   with identity 'System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'  
   "YourProjectName here" ...

プロジェクトのターゲット フレームワークを .NET 6 から .NET 8 に変更し忘れています。また、特に CoreHost コンソール .exe を再コンパイルしている場合、次のようなエラーが表示されることがあります:

Error  NETSDK1083
The specified RuntimeIdentifier `win10-x64` is not recognized. See https://aka.ms/netsdk1083 for more information.

.csproj を開き、以下の行が正しい内容になっていることを確認してください。必要に応じて変更してください:

<TargetFramework>net8.0-windows</TargetFramework>
<!--RuntimeIdentifier>win10-x64</RuntimeIdentifier --><!-- old - note win"10"-x64 -->
<RuntimeIdentifier>win-x64</RuntimeIdentifier><!-- new - "win10-x64" was changed to "win-x64" -->

詳細は NETSDK1083: 指定された RuntimeIdentifier は認識されませんを参照してください。

.NET Frameworkから.NET 8への移行

バージョン2.x と .NET Framework を使用して作成されたアドインをお持ちの場合、最初にProConcepts 3.0 Migration Guide の手順に従って、プロジェクトをPro 3.xと.NET 6 に変換する必要があります。2.x から 3.x への移行は破壊的な変更です。アドインを 3.x アドインに変換した後、必要に応じて上記の手順に従って、Pro 3.3+ と .NET 8 で再コンパイルしてください。

3.3以降の新しいアドインの開発

  1. Visual Studio 2022 を最低でも 17.8 にアップグレードし、.NET 8 が含まれていることを確認してください (ArcGIS Pro SDK の要件を参照してください。)。
  2. Pro および Pro SDK のバージョンを 3.3+ にアップグレードしてください。
  3. 適切な Pro SDK プロジェクト テンプレートを使用して、Visual Studio 2022 で新しい ArcGIS Pro SDK プロジェクトを作成します。
⚠️ **GitHub.com Fallback** ⚠️