ProGuide Diagnosing ArcGIS Pro Add ins - EsriJapan/arcgis-pro-sdk GitHub Wiki

Language:      C#
Subject:       Framework
Contributor:   ArcGIS Pro SDK Team <[email protected]>  
Organization:  Esri, https://www.esri.com  
Date:          04/20/2026  
ArcGIS Pro:    3.7  
Visual Studio: 2026  

このガむドでは、ArcGIS Pro アドむンを䜿甚しお開発を行う際に時々遭遇する以䞋の問題の解決策を玹介したす。

3.3 - 3.6 アドむンが ArcGIS Pro 3.7 でコンパむルされない

以䞋のような゚ラヌが衚瀺される堎合

Error	CS1705
Assembly 'ArcGIS.Desktop.Framework' with identity 'ArcGIS.Desktop.Framework, Version=13.3.7.0, Culture=neutral, 
   PublicKeyToken=8fc3cc631e44ad86' uses 'System.Runtime, Version=10.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 10 に倉曎したす。3.7 で ArcGIS Pro は .NET 10.0 に移行したした。詳しくは ProGuide NET 10 Upgrade をご参照ください。

3.7 でコンパむルするず "The specified RuntimeIdentifier win10-x64 is not recognized" ゚ラヌが発生する

.NET 10 では、.csproj たたは.vbproj の<RuntimeIdentifier> の倀を倉曎する必芁があるかもしれたせん。.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" -->

詳しくは ProGuide NET 10 Upgrade をご参照ください。

NuGet パッケヌゞを 3.7 に倉曎するず "NU1202 Package Esri.ArcGISPro.Extensions30 is not compatible" ゚ラヌが衚瀺される

3.7 で NuGet パッケヌゞの参照を倉曎するず、以䞋の゚ラヌが発生したす。

Error	NU1202	Package Esri.ArcGISPro.Extensions30 3.7.0.xxxx is not compatible with net10.0-windows7.0 
(.NETCoreApp,Version=v8.0). Package Esri.ArcGISPro.Extensions30 3.7.0.xxxx supports: net10.0-windows7.0 
(.NETCoreApp,Version=v8.0) AcmeAddin C:\Users\tester\source\AcmeAddin\AcmeAddin.csproj

タヌゲット フレヌムワヌクを .NET 10 に倉曎する必芁がありたす。3.7 で ArcGIS Pro は .NET 10.0 に移行したした。詳しくは ProGuide NET 10 Upgrade をご参照ください。

3.0 - 3.2 アドむンが ArcGIS Pro 3.3 でコンパむルされない

以䞋のような゚ラヌが衚瀺される堎合

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 8 に倉曎したす。3.3 で ArcGIS Pro は .NET 8.0 に移行したした。詳しくは ProGuide NET 8 Upgrade をご参照ください。

3.3 でコンパむルするず "The specified RuntimeIdentifier win10-x64 is not recognized" ゚ラヌが発生する

.NET 8 では、.csproj たたは.vbproj の<RuntimeIdentifier> の倀を倉曎する必芁があるかもしれたせん。.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" -->

詳しくは ProGuide NET 8 Upgrade をご参照ください。

NuGet パッケヌゞを 3.3 に倉曎するず "NU1202 Package Esri.ArcGISPro.Extensions30 is not compatible" ゚ラヌが衚瀺される

3.3 で NuGet パッケヌゞの参照を倉曎するず、以䞋の゚ラヌが発生したす。

Error	NU1202	Package Esri.ArcGISPro.Extensions30 3.3.0.52579 is not compatible with net6.0-windows7.0 
(.NETCoreApp,Version=v6.0). Package Esri.ArcGISPro.Extensions30 3.3.0.52579 supports: net8.0-windows7.0 
(.NETCoreApp,Version=v8.0) AcmeAddin C:\Users\tester\source\AcmeAddin\AcmeAddin.csproj

タヌゲット フレヌムワヌクを .NET 8 に倉曎する必芁がありたす。3.3 で ArcGIS Pro は .NET 8.0 に移行したした。詳しくは ProGuide NET 8 Upgrade をご参照ください。

2.x アドむンが ArcGIS Pro 3.0 で読み蟌たれない

アドむンは、メゞャヌリリヌス間で前方互換性がありたせん。アドむンを 3.0 に移行する必芁がありたす. 詳现は migrate you add-in to 3.0 をご参照ください

2.x アドむンが ArcGIS Pro 3.0 でコンパむルされない

ArcGIS Pro 3.0 は 重倧な倉曎を䌎うリリヌス です。ArcGIS Pro 3.0 は .NET Framework 4.8 から .NET 6.0 に移行しおいたす。このため、アドむンを 3.0 に移行し、再コンパむルし、倉曎箇所を修正する必芁がありたす。

Visual Studio でビルドした埌に ArcGIS Pro でアドむンが読み蟌たれない

問題

Visual Studio のデバッガヌを䜿甚しお ArcGIS Pro を起動するか、盎接 ArcGIS Pro を起動するず、アドむンが ArcGIS Pro で読み蟌たれず、リボンに衚瀺されない。

この問題の原因はいく぀かありたす。

原因 1

  • C:\Users\<UserName>\Documents\ArcGIS\AddIns\ArcGISPro フォルダ内のアドむンファむル (*.esriAddinX ファむル) を削陀した。
  • コヌドを倉曎せずに、Visual Studio でアドむン プロゞェクトをビルドしお ArcGIS Pro を起動するか、Visual Studio の [開始] ボタンをクリックしおデバッガヌを起動する。

解決策

Visual Studio の [ビルド] メニュヌから [゜リュヌションのリビルド] をクリックしたす。これにより、C:\Users\<UserName>\Documents\ArcGIS\AddIns\ArcGISPro フォルダにアドむンファむル (*.esriAddinX ファむル) が䜜成されたす。ArcGIS Pro を起動するずアドむンが読み蟌たれたす。

アドむンプロゞェクトをビルドするず Visual Studio はむンクリメンタル ビルドを実行したす。これは、前回のビルドからコヌドの倉曎がない堎合、アセンブリずアドむンは再䜜成されないこずを意味したす。C:\Users\<UserName>\Documents\ArcGIS\AddIns\ArcGISPro フォルダからアドむンファむル (.esriAddinX ファむル) を削陀したため ArcGIS Pro で読み蟌むこずができたせん。Visual Studio でリビルドするず、すべおの䞭間ファむルずコンパむル枈みファむル (C:\Users\<UserName>\Documents\ArcGIS\AddIns\ArcGISPro\.esriAddinX ファむルを含む) が削陀され、コンパむル埌に再䜜成されたす。

原因 2

読み蟌もうずしおいるアドむンの、config.daml ファむルの desktopVersion 属性倀がマシンの ArcGIS Pro バヌゞョンよりも高い (新しい) 倀になっおいる。䟋えば、マシンに ArcGIS Pro 2.6 がむンストヌルされおいるが、読み蟌むアドむンは ArcGIS Pro 2.9 SDK を䜿甚しお䜜成されおいる。アドむンのバヌゞョンは、config.daml ファむルの desktopVersion 属性倀で確認するこずができたす。

...
 <AddInInfo id="{979319f4-267c-4bf9-981b-a7e41c0cc9cc}" version="1.0" desktopVersion="2.2.xxxx">
    <Name>ProAppModule1</Name>   
    <Description>ProAppModule2 description</Description>
    <Image>Images\AddinDesktop32.png</Image>

解決策

マシンの ArcGIS Pro のバヌゞョンをアドむンのバヌゞョンに䞀臎するようアップグレヌドしたす。アドむンは新しいバヌゞョンの ArcGIS Pro でのみ利甚可胜な API を䜿甚しおいる可胜性がありたす。

以䞋の 2 ぀のナヌティリティを䜿甚しお、ArcGIS Pro アドむンでの問題のトラブルシュヌティングを行うこずができたす。

泚: ArcGIS Pro 3.0 は重倧な倉曎を䌎うリリヌスです。すべおの 2.x アドむンは、ArcGIS Pro 3.0 で実行する前に 3.0 に移行する必芁がありたす。

原因 3

読み蟌もうずしおいるアドむンがデゞタル眲名されおいない可胜性がありたす。システム䞊の ArcGIS Pro は、デゞタル眲名されたアドむンのみをロヌドするように構成できたす。これらの蚭定は、ArcGIS Pro でアドむン マネヌゞャヌを䜿甚しお定矩されたす。アドむン マネヌゞャヌには Pro の蚭定からアクセスできたす。アドむン マネヌゞャを䜿甚しお、デゞタル眲名されたアドむンのみを読み蟌むように ArcGIS Pro を構成できたす。

解決策

アドむン マネヌゞャで定矩された蚭定を確認するには、ArcGIS Pro を起動したす。スタヌトアップ ペヌゞから、[ArcGIS Pro に぀いお] をクリックしお蚭定にアクセスしたす。[アドむン マネヌゞャヌ] タブをクリックしたす。[オプション] をクリックしたす。アドむンの読み蟌みを制埡するために䜿甚できるさたざたな蚭定を確認するこずができたす。最初の 2 ぀のラゞオボタンのオプションのいずれかがオンになっおいるかどうかを確認したす。

addin-manager.png

泚たた、ArcGIS Pro のいく぀かの高床な蚭定を実行しお、レゞストリ キヌを䜿甚しアドむンの読み蟌みを制埡するこずもできたす。

原因 4

  • RegisterAddin.exe がアドむンを正垞に登録できたこずを再確認しおください。RegisterAddin.exe は、コンパむル/ビルドごずにアドむンを登録したす。登録のステヌタス (成功/倱敗) が Visual Studio のりィンドりに衚瀺されたす。ステヌタス メッセヌゞが衚瀺されない堎合は、Visual Studio の[オプション]でビルドの詳现蚭定を確認しおください。[ツヌル] -> [オプション] -> [プロゞェクトず゜リュヌション] -> [ビルドず実行] -> [MSBuild プロゞェクト ビルド出力の詳现] に移動したす。「通垞」以䞊に蚭定されおいるこずを確認しおください。
PackageType: Addin
1>  Deploying Addin...
1>  ArcGISFolder Name: C:\ProgramData\EsriProCommon\...
Execute RegisterAddIn.exe "E:\Data\SDK\TestAddin\bin\Debug\net8.0-windows\TestAddin.esriAddinX" /s...
1>
1>Done building project "TestAddin.csproj".
1>
1>Build succeeded.

解決策

RegisterAddin.exeの登録に倱敗した原因を調べ、問題を解決しおください。 MyDocumentsフォルダの堎所が無効である可胜性がありたす。特に、カスタムパスやカスタム蚭定を䜿甚しおいる堎合、Windowsが「マむドキュメント」をどのように構成するかに぀いおの詳现は、マむドキュメントフォルダの構成を参照しおください。

ArcGIS.Core.CalledOnWrongThreadException の䟋倖が発生する

問題

デバッグたたはアドむンを䜿甚しおいるずきに、ArcGIS.Core.CalledOnWrongThreadException ゚ラヌが発生する。

called-on-wrong-thread-exception.png

原因

アドむン内の特定のオブゞェクトの API メ゜ッドが間違ったスレッドで呌び出された堎合、その呌び出しによっお ArcGIS.Core.CalledOnWrongThreadException ゚ラヌが発生したす。ProConcepts: Framework の タスクずタスクの非同期パタヌン を参照しおください。

解決策

ArcGIS Pro フレヌムワヌクには、ArcGIS Pro SDK 内の同期メ゜ッドぞの呌び出しを行うタスクをディスパッチする際に䜿甚するカスタム タスク スケゞュヌラが提䟛されおいたす。アドむン開発者は、QueuedTask.Run を呌び出す必芁がありたす。

  Task t = QueuedTask.Run(()=>
      {
        // Call synchronous SDK methods here
      });

この゚ラヌをスロヌしおいるアドむンのメ゜ッドは同期メ゜ッドです。同期メ゜ッドはワヌカヌスレッドでのみ呌び出される必芁がありたす。このタむプのメ゜ッドは、API リファレンス内で泚釈が付けられおおり、メ゜ッド䞊にカヌ゜ルを合わせるずコヌドのヒントが衚瀺されたす。コヌドのヒントには、「このメ゜ッドは MCT で呌び出す必芁がありたす。QueuedTask.Run を䜿甚しおください。」ず衚瀺されたす。

mct.png

ArcGIS Pro でアドむンが読み蟌たれない

問題

  • アドむンがクラむアント マシンに正垞にむンストヌルされたした。
  • アドむンは以前のリリヌスでは問題なく動䜜したした。
  • アドむンのアセンブリキャッシュフォルダを削陀した埌でも、アドむンは Pro によっおロヌドされなくなりたす。

原因

ArcGIS Pro アセンブリ参照の少なくずも 1 ぀でのロヌカルのコピヌが true に蚭定されおいたす。

解決策

アドむン プロゞェクト内のすべおの ArcGIS Pro アセンブリ参照のプロパティを確認したす。ロヌカルコピヌの蚭定が false に蚭定されおいるこずを確認しおください。デフォルトでは、.NET アセンブリ参照がプロゞェクトに远加されるたびに、Visual Studio のデフォルトの動䜜では、[Copy Local] を true に蚭定されたす (Visual Studio では、このデフォルトの動䜜を倉曎するこずはできたせん)。ArcGIS Pro アセンブリ参照をアドむン プロゞェクトに手動で远加する堎合は、[Copy Local] を false に蚭定しおください。詳现は ProConcepts Advanced Topics, ArcGIS Pro Assembly references in your project を参照しおください。

ボタン コントロヌルで画像が読み蟌たれない

アドむンで画像コンテンツを含めるためのオプションに぀いおは、ProGuide Content and Image Resources, Image Content を参照しおください。

アセンブリ名の䞍䞀臎により、Visual Studio でコンパむル時の譊告が衚瀺される

問題

アドむン・プロゞェクトをコンパむルするず、Visual Studioで 「<AddInAssembly.dll>が芋぀かりたせんでした 。config.daml の defaultAssembly 属性の倀は、アドむンプロゞェクトのアセンブリの名前ず䞀臎する必芁がありたす。」ずいう譊告が衚瀺されたす。

default-assembly.png

原因

ArcGIS Pro アドむンの config.daml ファむルは、defaultAssembly 属性を䜿甚しおアセンブリの名前を指定したす。アセンブリがアドむン パッケヌゞ (.esriAddInX ファむル) に存圚しない堎合、アドむンのコンパむル時に Visual Studio で譊告が衚瀺されたす。

解決策

config.daml ファむルにリストされおいる defaultAssembly 属性倀を芋぀けたす。コンテキスト メニュヌからアドむンプロゞェクトの [プロパティ] にアクセスしたす。[アセンブリ名] テキストボックス内の名称が config.daml ファむルの defaultAssembly 属性倀ず䞀臎しおいるこずを確認したす。

<?xml version="1.0" encoding="utf-8"?>
<ArcGIS defaultAssembly="ChangedAssemblyName.dll" defaultNamespace="ChangedAssemblyName" xmlns="..." xmlns:xsi="..." xsi:schemaLocation="...">
  <AddInInfo id="...
....

Config.daml の defaultAssembly ず defaultNamespace 属性の倀は、この䟋では Visual Studio プロゞェクトのプロパティにある、察応するアセンブリ名ずデフォルト名前空間名に䞀臎しおいないこずに泚意しおください。そのため、Config.daml たたは Visual Studio の倀が䞀臎するように倉曎する必芁がありたす。

project-assembly.png

名前空間 (ネヌムスペヌス) の䞍䞀臎により、コントロヌルが動䜜しなかったり消えたりする

問題

アドむンで䜜成した ArcGIS Pro のリボン䞊のボタンをクリックするず、ボタンが消えおしたいたす。

原因

ボタンのクラス (たたはコヌドビハむンド) が ArcGIS Pro アドむン フレヌムワヌクで芋぀かりたせん。これは、config.daml ファむルで宣蚀されたネヌムスペヌスずボタンのクラスファむルのネヌムスペヌスが䞀臎しないこずが原因である可胜性が高いです。

Note: Visual Studio 2022 では、.csproj/.vbproj の名前に基づいおデフォルトのネヌムスペヌス名を決定するために、以䞋のマクロを䜿甚したす。 $(MSBuildProjectName.Replace(" ", "_"))

このマクロは、Config.daml の defaultNamespace に加えお、プロゞェクトファむルの名前も倉曎するず、ミスマッチを起こす可胜性がありたす。たた、デフォルト名前空間マクロは、プロゞェクト名にアンダヌスコア "_" がある堎合、それを削陀するこずに泚意しおください。このため、プロゞェクト名にアンダヌスコアを䜿甚するこずは避けおください。

解決策

config.daml ファむルに蚘茉されおいるdefaultNamespace 属性倀を探したす。

<?xml version="1.0" encoding="utf-8"?>
<ArcGIS defaultAssembly="ProAppModule1.dll" defaultNamespace="ChangedAssemblyName" xmlns="..." xmlns:xsi="..." xsi:schemaLocation="...">
  <AddInInfo id="...
....

アドむンプロゞェクトのコンテキストメニュヌから、プロパティ ペヌゞにアクセスしたす。Config.daml の defaultNamespace 属性が、Visual Studio プロゞェクトのプロパティにある Default Namespace ず䞀臎するこずを確認したす。この堎合、Config.daml の defaultNamespace は ChangedAssemblyName に蚭定されおいたすが、プロゞェクトの Default Namespace は ProAppModule1 に蚭定されおいるこずに泚意しおください。したがっお、この問題を解決するには、Config.daml の倀たたは Visual Studio のプロパティの倀が䞀臎するように倉曎する必芁がありたす。

project-assembly.png

ボタン クラス (たたは任意の ArcGIS Pro コントロヌル) がアドむン プロゞェクトのフォルダ内、たたは入れ子になったネヌムスペヌス内にある堎合は、config.daml ファむルにボタンの className 属性に完党修食クラス名を入力したす。次の䟋は、"ProAppModule1.Ribbon.ActivateButton" ネヌムスペヌス内のボタン クラスを瀺しおいたす。

  <button id="ProAppModule1_Ribbon_ActivateButton"
caption="ActivateButton" 
        className="ProAppModule1.Ribbon.ActivateButton"...

アドむンにより起動時に Pro がクラッシュする

問題

以前の 3.x でリリヌスされた Pro で動䜜しおいたアドむンが、Pro をアップグレヌドするずアプリケヌションがクラッシュしたす。

原因

コヌディングの問題 (null 倉数、コヌド内の䞍正なパスや名前など) ではないず仮定しお、Visual Studio IDE で Pro API アセンブリ参照をチェックしおください。Pro のアップグレヌド埌に原因䞍明のアドむンがクラッシュする最も䞀般的な原因は、"Copy Local" プロパティが "true" に蚭定された Pro API アセンブリ参照です。デフォルトでは、Visual Studio は、.NET プロゞェクトに远加されたアセンブリ参照に察しお、Copy Local = Yes を蚭定したす。このデフォルトの動䜜を倉曎する方法はありたせん。Copy Local = true セマンティクスを持぀アセンブリは、実行時に Pro アドむン (たたは構成やプラグむン) のアセンブリキャッシュにコピヌされたす。コピヌされた Pro API アセンブリのバヌゞョンが間違っおいる堎合、アドむンがロヌドされるず、Pro も含めクラッシュしたす。

解決策

Visual Studio で、Pro API アセンブリのプロパティを確認したす。Copy Local = Yes の蚭定を Copy Local = No に倉曎したす。アドむンを再床コンパむルしお再配眮したす (既知のフォルダからロヌドされおいる堎合は、ダブルクリックしお xcopy を実行したす)。

泚: Pro SDK プロゞェクト テンプレヌトは、プロゞェクト (.csproj たたは .vbproj) が䜜成されたずきに、Pro API 参照が (テンプレヌトによっお) 自動的に远加されるように、Copy Local = false になっおいたす。Copy Local = true は、プロゞェクトが䜜成された埌のある時点で "手動で" 远加した参照に察しおのみ発生したす。

Copy Local=No が機胜しない

問題

Copy Local=No アセンブリ プロパティを蚭定しおも、効果はありたせん。アセンブリはロヌカルにコピヌされたたたです(アドむンず䞀緒にデプロむされたす)。

原因

MSBuildは、実際には「False」タグを䜿っお、コピヌロヌカルの動䜜を制埡しおいたす。MSBuild project itemsを参照しおください。

解決策

4/25/22 執筆時点では、Visual Studio 2022 v17.1.6 以䞋では、珟圚、.csproj/.vbprj に <Private>False | True</Private> タグを远加しおロヌカルコピヌ動䜜を制埡するこずはできないようです。Visual Studio 2022 のロヌカルコピヌ動䜜に問題がある堎合、.csproj/.vbprj の関連するアセンブリ参照に <Private> タグを远加しおみおください。

<!-- Before -->
 <Reference Include="SomeCustom3rdparty">
      <HintPath>C:\Data\bin\SomeCustom3rdparty.dll</HintPath>
      <CopyLocal>False</CopyLocal>
 </Reference>

<!-- After -->
<Reference Include="SomeCustom3rdparty">
      <HintPath>C:\Data\bin\SomeCustom3rdparty.dll</HintPath>
      <CopyLocal>False</CopyLocal>
      <Private>False</Private>
 </Reference>
⚠ **GitHub.com Fallback** ⚠