Sesekali saya mengalami masalah berikut:
Saya mulai men-debug Add-In dan breakpoints diabaikan. Hampir seperti komunikasi antara IDE dan komponennya tidak berfungsi.
Masalah saya adalah bahwa terakhir kali ini terjadi saya menyelesaikannya dan sekarang saya tidak ingat apa yang saya lakukan untuk memperbaikinya.
Breakpoint saat ini tidak akan terkena. Tidak ada simbol yang dimuat untuk dokumen.
Sebagian, masalah yang saya alami sudah dijelaskan di sini tetapi tidak ada solusi untuk kerusakan breakpoint yang sebenarnya.
Harap dicatat bahwa ini biasanya berfungsi.
Menghapus nampan dan objek tampaknya tidak berfungsi.
Kali ini saya baru saja mengembalikan seluruh proyek saya dari cadangan dan memulai lagi tetapi saya ingin tahu bagaimana cara memperbaikinya jika saya menemukan ini lagi.
sumber
Jawaban:
Ini adalah solusi tidak resmi dan masih belum teruji dari staf ESRI. (Mereka menekankan bahwa ini bukan solusi resmi)
Coba hapus dari arcmap.exe.config, di direktori bin.
Ini adalah file xml \ ArcGIS \ Desktop10.0 \ bin \ arcmap.exe.config.
sumber
Debug.WriteLine()
pesan - pesan saya tidak dikirim ke jendela output di VS 2010.2 tahun dan 2 versi kemudian dan ini masih menjadi masalah. Baru saja selesai memperbarui / meningkatkan semua addins saya untuk 10.2 dan menemukan masalah ini lagi. Menerapkan SEMUA saran di pos ini dan tidak ada yang berhasil, tetapi saya telah menemukan 1 masalah tambahan yang mungkin . Sayangnya, saya tidak yakin apakah ini penyebabnya atau tidak karena saya juga telah menerapkan sebagian besar perbaikan yang mungkin dilakukan pada saat yang bersamaan.
Temuan baru: Saya menyadari saya telah mengembangkan Addins sejak versi 10 pada mesin yang sama dan setelah menginstal ulang tidak selalu membersihkan data ArcGIS lama. Saya menemukan saya memiliki versi lama dari addin pelakunya dalam versi sebelumnya dari data ArcGIS di C: \ Program Files (x86) \ ArcGIS. Karena ArcGIS akan memuat addins lama, mungkin ada beberapa jenis konflik. Saya menghapus semua data aplikasi arcgis lawas (Desktop10.0, Desktop10.1) hanya menyisakan Desktop10.2 dan breakpoint menjadi hidup. Sekali lagi saya bukan 100% jika ini solusinya tetapi mungkin item lain dalam daftar untuk memeriksa.
Saya telah melihat masalah khusus ini disebut "pembunuh produktivitas utama" di situs lain dan saya sangat setuju.
Singkatnya di sini adalah daftar tugas saya saat ini untuk masalah breakpoint 'mati':
Pastikan, saya benar-benar menjalankan addin. Setelah debugger meluncurkan aplikasi tidak cukup - breakpoint akan tampak "mati" sampai saya menjalankan addin (tombol, opsi menu, dll.)
Hapus OBJ dan BIN dari direktori proyek.
Hapus isi dari cache assebmly: C: \ Users \ User \ AppData \ Local \ ESRI \ Desktop10.2 \ AssemblyCache
Hapus semua data perakitan lawas. (Jika versi saat ini adalah 10.2 hapus Desktop10.0, Desktop10.1 data asembly) Tidak ada bukti bahwa ini membantu atau merupakan bagian dari masalah tetapi tidak ada alasan data ini perlu ada jadi saya menghapusnya untuk berjaga-jaga (C : \ Users \ User \ AppData \ Local \ ESRI)
Sesuai saran dukungan ESRI; Mengubah XML konfigurasi ArcCatalog dan ArcMap (tidak bekerja dengan sendirinya ketika saya mencoba tetapi beberapa orang merekomendasikan ini sebagai solusi, termasuk dukungan ESRI) Temukan ArcCatalog.exe.config dan ArcMap.exe.config di C: \ Program Files ( x86) \ ArcGIS \ Desktop10.2 \ bin Buka setiap xml di notepad dan hapus baris
<supportedRuntime version="v2.0.50727"/>
Ini tentang baris kelimaHapus semua data aplikasi ArcGIS lama dari direktori instalasi. Ini yang bekerja untuk saya. (mungkin) Buka: C: \ Program Files (x86) \ ArcGIS Hapus semua kecuali folder saat ini untuk Desktop10.x (yaitu Desktop10.0, Desktop10.1) Hanya versi Desktop saat ini yang harus tetap berada di lokasi ini.
Hapus dan tambahkan kembali semua referensi proyek termasuk referensi non-ESRI, resave, ulangi langkah 2 dan 3, kompilasi ulang, jalankan dbugger.
Mulai ulang komputer. (Waktu ini bekerja di masa lalu) JUGA menemukan ini menjadi salah satu solusi yang direkomendasikan pada Stack Overflow.
Di Config.esriaddinx - ubah tombol untuk memasukkan onDemand = false: (saran Kirk - lihat di atas) Ini tidak bekerja untuk saya secara pribadi.
Bangun kembali proyek dari awal. (Ini bekerja untuk saya di masa lalu.)
sumber
Satu-satunya waktu saya mendapatkan ini adalah ketika saya memiliki instance ArcMap lain terbuka dan lupa untuk menutupnya sebelum membangun / debugging. Jika Anda tidak menutup semua instance menggunakan perakitan maka yang lama akan terus digunakan. Atau semacam itu.
sumber
Karena .NET Framework proyek saya adalah 4.0, saya berubah ke
supportedRuntime version="v4.0.30319"
dalam ArcMap.exe.config dan saya perhatikan bahwa masalahnya tertunda oleh perubahan ini. Saya juga ingat bahwa ArcMap juga memuat ArcCatalog jadi saya mengubah juga ArcCatalog.exe.config menjadisupportedRuntime version="v4.0.30319"
dan YA !!! Ini bekerja lagi. Saya menghabiskan sepanjang hari mencoba untuk memperbaiki ini dan saya berharap itu bekerja untuk Anda juga.sumber
Saya mencoba saran di atas untuk sementara waktu, dan akhirnya menemukan solusi. Memotong mengejar, saya akan memberikan solusinya pertama, kemudian penjelasannya:
Buka Task Manager. Akhiri Proses untuk setiap salinan ArcMap.exe.
Buka Windows Explorer. Arahkan ke C: \ Users \\ Pengaturan Lokal \ ESRI \ Desktop10 ..
Jika Anda tidak melihat AssemblyCache, Atur> Folder dan opsi pencarian> Lihat> hapus centang "Sembunyikan file sistem operasi terlindungi (disarankan)"
Di direktori di AssemblyCache, cari yang berisi .dll Anda.
Hapus .dll.
Bangun kembali proyek dan debug. Setelah add in Anda diaktifkan, Anda akan melihat konten cache disegarkan.
Jika diinginkan, sembunyikan kembali file OS yang dilindungi.
Masalahnya bagi saya adalah bahwa ada contoh lama DLL saya di C: \ Users \\ Local Settings \ ESRI \ DesktopX.X \ AssemblyCache \ folder, dan saya juga tidak bisa melihat \ AssemblyCache karena saya tidak menyadari itu adalah file OS tersembunyi. Ada juga instance zombie dari ArcMap yang berjalan, dan ketika saya mencoba untuk menghapus DLL pada awalnya terkunci. Kecurigaan saya adalah bahwa apa yang menyebabkan masalah di tempat pertama adalah bahwa saya tidak sepenuhnya menutup sesi debugging ArcMap sebelum mengkompilasi ulang kode dan memulai yang lain. DLL lama dalam cache tidak bisa ditimpa karena instance ArcMap yang lama masih terkunci, dan setelah keluar dari sinkronisasi dengan kode baru, versi yang di-cache tidak lagi diperbarui. (Saya dapat melihat berdasarkan tanggal file bahwa .config, .pdb, dan .xml sedang diperbarui tetapi bukan .dll.)
sumber
Saya berurusan dengan masalah yang sama, dengan add-in saya sendiri dalam topik yang sama sekali lain, dan saya menyelidiki hal-hal berikut:
Pada awalnya, mulai debug dan di menu pilih jendela berikut Debug >> Windows >> Modul, di mana Anda dapat melihat modul apa yang dimuat saat memulai debug. Jika Anda tidak dapat melihat adaAddIn.dll Anda maka setidaknya Anda tahu bahwa itu tidak dimuat oleh studio. Jika Anda melihat di sana dan Anda tidak dapat meletakkan breakpoint di sana maka Studio memuat yang lama. Untuk memeriksa ini, ubah nama majelis di properti proyek, bangun kembali solusi, mulai debug dan Anda akan melihat dll lama dimuat di sana. Saya tidak tahu dari mana studio memuat dll lama ini.
Pergi ke Solution Explorer dan periksa membandingkan file "yourAddIn.Addin" dan "yourAddIn - For Testing.AddIn" dan mereka mungkin berbeda. Studio hanya menggunakan file ke-2 dalam Add-In Manager-nya! Pada perubahan pertama Juga ubah tag di dalamnya untuk merujuk ke dll yang benar dan Anda dapat memeriksa tag juga. Bagi saya, set kembali ke 0 pada file "yourAddIn - For Testing.AddIn", jadi saya mengubahnya kembali menjadi 1. (Jika Anda menghapus direktori bin add-in Anda dan memulai studio, ia akan meminta Anda dan bertanya yang ingin Anda hapus add-in ini dari daftar add-in Anda! Pada titik ini Studio menetapkan LoadBehavior ke 0.)
Setelah dua perubahan ini mulai berfungsi lagi!
sumber
Dengan Visual Studio, saya membuat add-in baru untuk Arcmap, dan menambahkan tombol dan bilah alat untuk itu. Menghasilkan file konfigurasi seperti ini:
Saya membuat beberapa kode di konstruktor untuk Tombol dan meletakkan titik istirahat di dalamnya. Saya mulai dalam mode debug dan melihat bahwa perakitan belum dimuat:
Saya mengubah tombol untuk memasukkan onDemand = false:
Ketika saya mulai arcmap lagi, itu mencapai titik istirahat. Perhatikan bahwa jika bilah alat mati saat startup, Anda harus membuatnya terlihat untuk menyebabkan konstruktor tombol dipanggil - jadi dalam beberapa hal bilah alat masih sesuai permintaan.
sumber
Harus mengubah addin saya untuk arcCatalog agar sesuai menggunakan kerangka 4 dengan versi 10.1 baru ArcCatalog.
Baru saja berkomentar versi = "v2.0.50727" dan tidak komentar "v4.0.30319"
Dalam C: \ Program Files (x86) \ ArcGIS \ Desktop10.1 \ bin file konfigurasi xml ArcCatlog.exe
berhenti pada titik istirahat sekarang
Tampaknya menjadi masalah yang sama dengan arcmap
sumber
Setelah saya memigrasi proyek ESRI ArcGIS 10 dari satu mesin ke yang lain, saya menemukan kesalahan bahwa mesin tidak dapat memuat file debug .pdb untuk ArcMap.exe. Saya mencoba setiap saran pada posting ini tanpa hasil.
Kemudian saya melakukan yang berikut:
Saya menghapus referensi untuk semua perpustakaan Esri. * Di setiap proyek yang berisi mereka, dan menambahkannya kembali ke proyek pada mesin baru.
Inilah yang akhirnya berhasil untuk saya. Jika ada yang tersandung di sini dengan masalah yang tidak jelas ini, dan telah mencoba segala hal lain yang tercantum di halaman ini, coba ini - cepat dan mudah dan cukup tidak berbahaya. Saya tidak sepenuhnya yakin mengapa ini harus dilakukan, saya kira itu ada hubungannya dengan mencari perpustakaan per mesin.
Ini untuk proyek yang menggunakan BaseCommands / Toolbars, dan bukan Add-Ins baru. Menggunakan ArcGIS 10.0 dan .NET 3.5 dengan Visual Studio 2010 pada Windows 7 Pro.
sumber
Untuk mereka yang menargetkan .Net 4.0 Framework, mengikuti berfungsi untuk saya.
<?xml version="1.0" encoding="utf-8" ?> <configuration> <startup> <supportedRuntime version="v4.0.30319"/> <!--supportedRuntime version="v2.0.50727"/--> </startup>
Untuk beberapa alasan ArcCatalog.exe.config tampaknya dikunci untuk memodifikasi. Saya mengatasinya dengan menyalin dan memodifikasinya di direktori lain dan kemudian menggantinya.
"CLR4.0"
sumber
Dua kemungkinan penyebab muncul di benak saya:
Addin tidak terdaftar dengan benar sehingga DLL tidak dimuat ke dalam proses ArcMap yang sedang di-debug.
Proyek Anda menargetkan .NET 4. Sebaliknya, cobalah menargetkan .NET 3.5.
sumber
Jika Anda mengkode dengan beberapa proyek dalam solusi Visual Studio yang sama, Anda mungkin menghadapi situasi di mana Visual Studio (VS) "menonaktifkan" breakpoints Anda dan Anda tidak dapat melangkah melalui kode Anda. Ini terjadi pada saya baru-baru ini di mana saya tidak bisa masuk ke proyek perakitan DLL "tergantung" yang dipanggil dari proyek utama saya.
Peringatan VS menyarankan bahwa perakitan saya (DLL) sudah usang dan tidak cocok dengan kode saya. Ada opsi VS untuk mematikan persyaratan kode yang cocok tetapi secara intuitif ini sepertinya ide yang buruk dan didukung oleh posting internet. Saya membaca banyak situs web dan ada beberapa saran degil di luar sana.
Pada akhirnya saya melakukan pencarian untuk output DLL dari mesin ketergantungan saya dan menemukan beberapa salinan lama di berbagai lokasi di komputer saya (mungkin dari percobaan sebelumnya dan konfigurasi proyek). Jadi saya menghapus semuanya dan membangun kembali solusi saya dari awal. Ini memperbaiki masalah saya. Saya kira proyek saya saat ini secara tidak sengaja mengikat ke salah satu salinan lama entah bagaimana dan tidak menggunakan build terbaru yang ditempatkan di folder debug saya.
sumber
Apa yang berhasil bagi saya adalah tidak menghapus arcmap.config.exe seperti yang dijelaskan dalam posting oleh Jakub di atas, tetapi mengatur tag "didukungRuntime" dalam file ini ke versi yang benar dari Kerangka yang Anda targetkan dalam Visual Studio, dalam kasus saya:
sumber
Lebih dari sejumlah proyek ArcObjects saya mengumpulkan daftar alasan mengapa debugging mungkin tidak berfungsi untuk add-in, ekstensi, dan perintah (pre-add-in). Tanpa urutan tertentu:
Banyak langkah yang mengharuskan ArcMap dimulai kembali. Jika semuanya gagal, restart mesin adalah langkah mundur yang mudah, tetapi saya hanya sekali memiliki perbedaan.
sumber
Apa yang berhasil bagi saya dijelaskan oleh AnthonyWJones di /programming/7192361/silverlight-project-wont-enter-debug-mode : "Buka properti Proyek Web yang terkait. Pilih Tab Web. Gulir ke bagian bawah dan di bagian "Debuggers" pastikan "Silverlight" dicentang. "
sumber
Saya pernah mengalami hal ini sekali atau dua kali. Jika saya ingat dengan benar, saya bisa membuat breakpoint berfungsi ketika saya membuat perubahan kode minor, yang berarti aplikasi itu dibangun kembali. Apa yang terjadi ketika Anda membangun atau membangun kembali proyek Anda?
sumber
Saya tidak percaya banyak orang tidak mengalami masalah ini. Saya sekarang mengalami ini hampir setiap kali saya meningkatkan dan men-debug add-in saya.
Tidak ada solusi yang disebutkan di atas yang berfungsi. Untuk memperbaikinya saya perlu menghapus seluruh proyek dan mengembalikannya dari cadangan. Ini membuat saya percaya bahwa sesuatu dalam proyek tertentu telah menjadi korup karena biasanya mulai terjadi ketika ArcMap lumpuh saat debugging.
sumber
Apakah Anda membuat proyek Anda menggunakan Framework 4? Saya memiliki masalah yang sama, tetapi ketika saya beralih ke Framework 3.5, itu berfungsi dengan baik.
sumber
coba bersihkan dan bangun kembali kemudian jalankan tanpa debugging, ketika aplikasi berjalan melampirkannya di VS
sumber
Saya tahu ini mungkin terdengar terlalu jelas, tetapi saya tetap akan menyebutkan bahwa Anda memerlukan Visual Studio edisi yang sesuai. Misalnya masalah ini dapat terjadi dengan edisi kilat dari tahun tertentu sementara itu bisa bekerja dengan edisi pamungkas. Jika Anda menggunakan say 2010, cobalah beralih ke 2012. Lalu coba beralih dari express ke ultimate. Saya akan melakukan ini jika Anda belum pernah berurusan dengan masalah pemuatan simbol. ESRI memang memberikan informasi tentang mengunduh simbol ke cache seperti yang disebutkan dalam tautan di atas (ArcObjects 10 .NET SDK Help). Namun, ini mungkin tidak perlu. Pastikan Anda menggunakan .net framework yang sesuai juga sebelum debugging, misalnya .net 3.5 pada edisi yang lebih lama.
sumber