ProGuide ArcGIS Pro Extensions NuGet - 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
ArcGIS Pro Extensions30 NuGet (Esri.ArcGISPro.Extensions30) はNuGetギャラリーで利用できます。Pro NuGetには、アドインと構成をコンパイルするために必要なすべてのPro APIアセンブリが含まれています。ファイルベースの参照の使用は、変更なしでアドインで機能し、新しいアドインを作成するときのPro SDKテンプレートのデフォルトの動作としてファイルベースの参照を引き続き使用します。
ノート: ArcGIS Pro 3.0 では、新たに Esri.ArcGISPro.Extensions30 という ArcGIS Pro エクステンションの NuGet が追加されました。Pro Migration ツール を使用してアドインまたは構成を 2.x から 3.0 に移行する場合、プロジェクトに 2.x の NuGet が含まれていると、その NuGet 参照が自動的に Esri.ArcGISPro.Extensions30 に更新されます。
ArcGIS Pro Extensions30 NuGetには、ArcGIS Pro バージョン 3.0 以降でアドインと構成をコンパイルするために必要な ArcGIS Pro エクステンション アセンブリが含まれています。NuGet はアドインと構成でArcGIS Pro アセンブリを参照する従来のファイルベースの参照とは別の方法を提供します。NuGetを使用するには、既存のPro APIアセンブリ参照を削除し、それらをPro NuGetへの参照に置き換えるだけです(以下のインストール手順を参照)。このガイドでは、Nugetを使用して既存のファイルベースの参照を切り替えるプロセス、NuGetを使用するための最小要件、およびNuGetを使用することのいくつかの利点について説明します。
ArcGIS Pro Extensions30 NuGetは、Visual Studio の PackageReference
NuGet パッケージ管理形式の設定である場合のみ動作するようになります。
NuGetのArcGIS Proアセンブリをアドインまたは構成プロジェクトの参照として正しく含めるには、Visual StudioのNuGetパッケージ管理形式を PackageReference
にする必要があります(デフォルトは Packages.config
です)。 Visual Studio内で "ツール->オプション->NuGet パッケージ マネージャ->全般"を選択し、既定のパッケージ管理形式を PackageReference
に変更します。
これは、以下のインストール手順のステップ4でも説明されています。デフォルトのパッケージ管理形式として PackageReference
を使用すると、個々のアセンブリに Copy Local=False
が直接設定されている場合と同じ、NuGetアセンブリのセマンティクスが模倣されます。NuGet アセンブリのコピーをローカル アドインの Visual Studio プロジェクトと Pro アセンブリ キャッシュにコピーすることは望ましくありません。つまり、パッケージ管理形式が Packages.config
に設定されている場合のデフォルトのNuGet動作である Copy Local=True
セマンティクスです。Pro API アセンブリ リファレンスと Copy Local の詳細については ArcGIS Pro Assembly references in your project を参照してください。
以下に、アドインまたは構成プロジェクトで ArcGIS Pro Extensions30 NuGet をインストールするための詳細な手順を示します。
- Visual Studioで、アドインまたは構成プロジェクトを開いた状態で、[依存関係] > [アセンブリ] ノードを展開します
- すべての ArcGIS.* アセンブリ参照を選択し、右クリックしてコンテキストメニューから[削除]を選択します。また、ESRI.ArcGIS.ItemIndex アセンブリ参照を選択して右クリックし、[削除]を選択します。これにより、ArcGIS Proファイルベースのすべての参照がプロジェクトから削除されます。これらの参照をArcGIS Pro Extensions30 NuGetに置き換えます。(以下の手順)
- Visual Studioの[ツール]メニューから、[NuGet パッケージマ ネージャー] > [パッケージ マネージャー設定] メニューを選択します。
- [オプション] ダイアログの [NuGet パッケージ マネージャー]で、[既定のパッケージ管理形式] のドロップダウンから [PackageReference] を選択します。 [OK] をクリックして、[オプション] ダイアログを閉じます。
- プロジェクトノードを右クリックし、コンテキストメニューから[NuGet パッケージの管理..]を選択します。
- [NuGet パッケージ マネージャー] ダイアログで、右上隅のパッケージソースが「nuget.org」に設定されていることを確認します。
- [参照] タブを選択します。
- [検索] テキストボックスに「ArcGIS Pro Extensions30」と入力します。
- Esri.ArcGISPro.Extensions30 NuGet パッケージを選択します。
- バージョン ドロップダウンに「最新の安定板 xxxx」バージョンが表示されていることを確認します。 [インストール] ボタンをクリックします。
- ライセンスへの同意を表示し、ArcGIS Pro Extensions30のダウンロードとインストールを完了する場合は、[同意する]をクリックします。
- NuGet パッケージ マネージャー ダイアログを閉じます。
-
Visual Studioのソリューション エクスプローラーで、[依存関係] > [パッケージ] ノードを展開します。 Esri.ArcGISPro.Extensionsが NuGet参照 としてリストされていることに注意してください。
- アドインまたは構成プロジェクトをコンパイルします。コンパイルでは、ArcGIS Pro Extensions30 NuGetが使用されます。
注: NuGetを追加した後、パッケージ参照が表示されない場合は、代わりに
packages.config
がプロジェクトに追加され、ArcGIS Pro API アセンブリのコピーが表示されます。NuGet パッケージ マネージャーのデフォルトのパッケージ形式(手順4および上記の要件セクションを参照)を確認してください。 デフォルトのパッケージ形式がPackageReference
に設定されていることを確認してください。
ビルドサーバーでのコンパイルプロセス中にアドインまたは構成に署名する場合は、ArcGISSignAddIn.exe
も必要になります。この実行可能ファイルは、標準のArcGIS Proインストールの一部であり、NuGetには含まれていません。ビルドサーバー構成でアドインに署名するには、ArcGISSignAddIn.exe, ArcGISSignAddIn.dll, ArcGISSignAddIn.runtimeconfig.json, DADFLib.dll をビルドサーバーの bin フォルダにコピーします(フォルダーの場所は関係ありません。これらが一緒にコピーされていることを確認してください)。注:完全修飾パスで ArcGISSignAddIn.exe
を参照したくない場合は、コピーするフォルダーとその依存関係がサーバーの Path
環境変数に追加されていることを確認してください。
または、ArcGIS Pro SDK リソースのダウンロードページ からArcGISSignAddIn.zip ファイルをダウンロードすることもできます。このzipファイルには、ビルドサーバーでアドイン/構成に署名するために必要なファイルが含まれています。選択したフォルダの場所で解凍し、(オプションで)その場所をサーバーの Path
環境変数に追加します。
ArcGIS Pro Extensions30 NuGet は、ArcGIS Pro のアドインと構成のみでの使用を目的としています。NuGet には Pro パブリック エクステンション API が含まれているため、Pro エクステンションではなく ArcGIS.Core のジオデータベースおよびジオメトリ API を使用するコアホスト アプリケーションおよび Pro プラグインで参照しないでください。
技術的には、コアホスト アプリケーションまたは Pro プラグインが NuGet を使用する場合でも、コンパイルされます。ただし、コード内でエクステンション API(NuGetに含まれている)のいずれかを参照している場合、実行時にクラッシュします。
ファイルベースの参照ではなくNuGetパッケージ参照を使用することには、いくつかの利点があります。
- 共有コード:NuGetパッケージ参照メカニズムは、各ユーザーのグローバルNuGetキャッシュを介して参照の解決を自動的に処理します。これにより、Proのインストール場所が異なる可能性のある複数の開発者間でコードを共有できます(たとえば、D: ドライブと C: ドライブなど)。ファイルベースの参照では、プロジェクトを共有するときにファイル参照を修正して、さまざまなPro APIアセンブリパスに対応する必要があります。
-
ビルドサーバーおよび継続的なビルドシナリオ:ArcGIS Pro Extensions30 NuGetはファイルベースのProアセンブリ参照を置き換えるため、アドインと構成をビルドするためにArcGIS Proをインストールする必要はありません(NuGetでは参照は自己完結型であるため
ArcGIS\bin\Extensions
フォルダーに物理的に配置する必要はありません)。- これは_ビルド_専用です。アドインを_登録_するには、常に RegisterAddin.exe と Proのインストールが必要です。
- ArcGIS Proをインストールせずにアドインまたは構成プロジェクトをビルドすると、ArcGIS.Desktop.Framework.xsdスキーマが見つからないという警告が表示されます。これは、アドインおよび構成プロジェクトに含まれるConfig.damlファイルに使用されるスキーマです。これはコンパイルプロセスに影響を与えるものではありません。
- 異なるバージョンのArcGIS Proに対して簡単にアドインを構築する:時間の経過とともに複数のバージョンのArcGIS Pro Extensions30 NuGetを利用すると仮定すると、Visual StudioのNuGetパッケージマネージャーを使用すると、異なるバージョンのNuGetを簡単に切り替えることができます。 [ソリューションの NuGet パッケージ管理...]タブで、ArcGIS Pro Extensions30 NuGetを選択し、[バージョン:] を使用して使用可能なバージョンを切り替えます。