Itu adalah pelemparan koin apakah pertanyaan ini adalah GIS.SE atau pertanyaan StackOverflow ... Saya akan dengan GIS.SE karena masalahnya tampaknya terletak pada ArcCatalog.
Saya memiliki beberapa addins yang telah ditulis untuk ArcCatalog (dan juga ArcMap); sebelumnya saya bisa men-debug kode F5 menggunakan breakpoints sekarang semua breakpoints saya tidak aktif dengan pesan Breakpoint saat ini tidak akan terkena. Tidak ada simbol yang dimuat untuk dokumen ini :
Saya telah mencoba saran dari Stack Overflow:
Breakpoint saat ini tidak akan dipukul. Tidak ada simbol yang dimuat untuk dokumen ini
dan juga
Mengapa breakpoint tidak menjadi "hit" saat men-debug Add-In ArcGIS 10? tetapi ini tampaknya menjadi masalah yang berbeda.
Karena ini adalah Addin (dll) sehingga tidak ada proyek startup. Saya telah membersihkan semua versi lainnya. Saya membuat perubahan halus pada file Esriaddinx di message=
untuk mengkonfirmasi perubahan yang dilakukan - semua baik, tidak ada versi yang lebih lama.
Sementara pembersihan saya perhatikan bahwa addins untuk ArcCatalog disalin ke %USERPROFILE%\Documents\ArcGIS\AddIns\Desktop10.X\{AddInID}\
tempat addins ArcMap tidak .. Saya telah mencoba menyalin file pdb ke folder addin tetapi tampaknya kode tersebut tidak lagi di-debug dan ArcCatalog telah beralih / dialihkan ke salinan.
Apakah ada cara untuk debug dengan addpoint breakpoint untuk ArcCatalog? Perhatikan bahwa add-on ArcMap dan debug aplikasi mandiri baik-baik saja.
Lingkungan Hidup:
- Windows 7 64bit
- ArcGis 10.1
- Visual Studio 2010 Professional (baik VB.net dan C #)
sumber
Jawaban:
Meningkatkan komentar awal saya menjadi sebuah jawaban:
Saya punya masalah yang sama dengan ArcMap 10.3 dalam kombinasi dengan Visual Studio 2013. Saya menemukan semua posting yang sama yang disebutkan @ michael-miles-stimson, dan memang, pada satu titik saya benar-benar bisa men-debug dan mencapai breakpoint. Tetapi untuk beberapa alasan yang berhenti bekerja setelah beberapa saat, dan tidak mungkin saya bisa membuatnya bekerja lagi.
Akhirnya, saya mengembalikan kerangka target dalam proyek saya kembali dari .Net 4.5 ke .Net 3.5 dan mengatur didukungRuntime di .exe.config ke v2.0.50727. Itu menyelesaikannya untuk saya.
Jika tambahan ArcCatalog menggunakan 4.5 dan ArcMap satu 3.5, itu akan menjelaskan perilaku yang dijelaskan dalam pertanyaan.
Saya tidak berpikir itu penting jika Anda menggunakan versi Klien atau Lengkap, saya selalu cenderung menggunakan Penuh, karena pada satu titik, saya sepertinya selalu kehilangan kelas yang tidak ada dalam versi Klien.
sumber
Sebenarnya Addins Arcmap disalin ke lokasi itu setelah instalasi juga (atau Build in Visual studio).
Untuk mengatasi masalah ini coba langkah-langkah ini:
Bersihkan seluruh Solusi Anda di studio visual dengan mengklik kanan pada solusi dan pilih Bersihkan Solusi
jika proyek addin arccatalog Anda bergantung pada majelis pihak ketiga lainnya, maka pastikan majelis tersebut memiliki file .pdb (simbol) di sampingnya
Di studio visual, jika Anda memiliki proyek lain dalam solusi Anda yang tergantung pada proyek arccatalog Anda, maka tambahkan referensi proyek mereka alih-alih dll. seperti gambar ini:
sumber
Ok, saya baru saja memverifikasi bahwa saya dapat melangkah melalui kode menggunakan proses ini.
Saya melakukan ini di ArcMap, tapi saya pikir itu harus berlaku untuk ArcCatalog karena prosesnya berkaitan dengan debugging DLL dan bukan item spesifik ESRI.Saya mengkonfirmasi ini di kedua ArcMap 10.2.2 dan ArcCatalog 10.2.2. Karena ini adalah proses Windows yang berurusan dengan DLL secara langsung, versi perangkat lunak ESRI seharusnya tidak masalah.Saya menggunakan Visual Studio untuk Melampirkan ke Proses .
Saya dapat melangkah melalui ekstensi terkompilasi (DLL) menggunakan proses ini ketika DLL dipanggil dalam program lain.
Inilah yang saya lakukan ...
Di Visual Studio, buka proyek ekstensi Anda. Saya membangun ekstensi saya di VS 2010 C # Express, tetapi saya menggunakan VS 2013 Ultimate untuk melakukan ini. Saya tidak yakin apakah Lampirkan ke Proses adalah opsi di versi Express 2010. Saya tidak melihatnya, tetapi itu bisa disembunyikan di suatu tempat karena itu adalah versi Express.
Buka produk ESRI Anda dan instal add-in. Sekarang, kembali ke VS, klik Lampirkan ke Proses dan pilih proses produk ESRI Anda. Milik saya adalah ArcMap.exe . Dari sini, Visual Studio harus melampirkan debugger-nya ke program dan ketika DLL dijalankan yang telah Anda buka dan breakpoint ditetapkan, program itu akan berhenti di sana. Ini akan bertindak seperti program lain yang Anda debug di Visual Studio. Ini mungkin meregangkan beberapa debugging ke beberapa item ESRI meskipun kode kemungkinan besar dikaburkan jadi tidak begitu berguna.
Saya memastikan saya menginstal add-in dari direktori Release saya untuk proyek saya. Sejauh yang saya tahu, ESRI tidak menyalin DLL ke salah satu foldernya, tetapi mereka menggunakan Utilitas Pendaftaran Majelis Esri untuk mendaftarkan lokasi DLL sehingga sistem tahu di mana menemukannya ketika direferensikan dari produk ESRI.
FYI: Saya menggunakan proses ini untuk men-debug perpustakaan kelas yang saya tulis di satu proyek yang sedang digunakan di yang lain. Teori yang sama di sana harus menerapkan add-in ESRI karena hanya perpustakaan kelas (DLL) yang dipanggil ke program lain. Selain dari Visual Studio, saya percaya Windows debugger lain harus dapat dilampirkan ke DLL.
HARAP posting komentar yang satu ini. Saya pikir ini akan bekerja untuk sementara waktu dan saya sangat ingin tahu bagaimana orang lain adil dengan metode ini.
EDIT Saya baru saja membuat add-in ArcCatalog baru, yang terdiri dari tombol sederhana. Saya menambahkan tugas string
string stophere = "debugger stopped!";
dalam event handler untuk acara klik tombol. Melalui ArcCatalog, berhenti menggunakan metode Lampirkan ke Proses . Info Visual Studio 2010 tentang prosesnya ada di sini .Ada beberapa hal di MSDN tentang debugging DLL melalui berbagai metode di Visual Studio dan Windows Debugger. Saya pribadi menemukan Lampirkan ke Proses lebih baik daripada memulai metode program eksternal dan juga lebih baik daripada menggunakan debugger jarak jauh .
Satu-satunya downside ke metode ini adalah bahwa Anda kehilangan pendekatan F5 di mana Anda men-debug langsung dari dalam Visual Studio. Jadi itu berarti, buat perubahan pada kode Anda, instal pembaruan, mulai ArcCatalog, Lampirkan ke Proses, lalu tekan titik istirahat Anda. Namun, saya menemukan bahwa metode ini cukup bagus untuk diketahui jika Anda mengalami masalah seperti yang Anda miliki. Proses ini mungkin sedikit lebih lama, tetapi ini adalah metode yang pasti untuk mendapatkan hasil Anda.
sumber
Ini adalah file yang saya buat selama beberapa tahun yang diperdebatkan dengan ekstensi ArcMap & ArcCatalog & kemudian Add-in:
Hal-hal yang dapat mencegah ArcMap dari debugging Add-in di Visual Studio:
sumber
Ini solusinya:
Coba hapus SupportedRuntime dari arcmap.exe.config, di direktori bin.
Ini adalah file xml \ ArcGIS \ Desktop10.0 \ bin \ arcmap.exe.config.
Mengapa breakpoint tidak menjadi "hit" saat men-debug Add-In ArcGIS 10?
sumber
Beberapa langkah yang jelas (saya kira Anda sudah mencoba ini..tapi masih).
sumber