ทำไมเบรกพอยต์จึงไม่“ ถูกโจมตี” เมื่อทำการดีบั๊ก ArcGIS 10 Add-In


24

ตอนนี้จากนั้นฉันพบปัญหาต่อไปนี้:

ฉันเริ่มการดีบัก Add-In และจุดสั่งหยุดจะถูกละเว้น เกือบจะดูเหมือนว่าการสื่อสารระหว่าง IDE และองค์ประกอบไม่ทำงาน

ปัญหาของฉันคือครั้งสุดท้ายที่สิ่งนี้เกิดขึ้นฉันแก้ไขมันและตอนนี้ฉันจำไม่ได้ว่าฉันทำอะไรเพื่อแก้ไข

เบรกพอยต์จะไม่ถูกโจมตีในขณะนี้ ไม่มีการโหลดสัญลักษณ์สำหรับเอกสาร ป้อนคำอธิบายรูปภาพที่นี่

ส่วนหนึ่งปัญหาที่ฉันมีอยู่ได้อธิบายไว้แล้วที่นี่แต่ไม่มีวิธีแก้ไขสำหรับความผิดปกติของเบรกพอยต์ที่เกิดขึ้นจริง

โปรดทราบว่าวิธีนี้ใช้งานได้ปกติ

การลบ bin และ obj ดูเหมือนจะไม่ทำงาน

เวลานี้ฉันเพิ่งกู้คืนโครงการทั้งหมดของฉันจากการสำรองข้อมูลและเริ่มต้นใหม่ แต่ฉันต้องการทราบวิธีแก้ไขปัญหานี้ฉันควรจะแก้ไขปัญหานี้อีกครั้ง


1
มีการตั้งค่าแอตทริบิวต์ "onDemand" xml เป็นเท็จในไฟล์กำหนดค่าของคุณหรือไม่
Kirk Kuykendall

ฉันไม่มีคำตอบที่ชัดเจน (แม้ว่าโดยทั่วไปจะหมายถึงว่าดีบักเกอร์ไม่สามารถหาไฟล์ pdb สำหรับ dll ที่โหลด) แต่คุณสามารถลองกลั่นกรองคำถามเหล่านี้ใน SOเพื่อดูว่าพวกเขาไปในทิศทางที่ถูกต้องหรือไม่
Michael ทอดด์

@ Kirk ฉันไม่เห็นคุณลักษณะดังกล่าวในไฟล์ config.esriaddinx
Jakub Sisak GeoGraphics

@Michael - ขอบคุณ จะดูอย่างใกล้ชิด ปัญหาคือฉันสามารถเพิ่มฟังก์ชันการทำงานให้กับ Add-in ของฉันเป็นเวลาหลายเดือนและแก้ไขจุดบกพร่องอย่างมีความสุขและจุดพักที่ไม่เหมาะสม ...
Jakub Sisak GeoGraphics

2
ฉันเคยเกิดขึ้นหลายครั้งโดยไม่มีเหตุผลที่ชัดเจนเช่นกัน ถ้าฉันจำการลบ obj และถังไดเรกทอรีมันแก้ไขได้กี่ครั้ง, การคัดลอก PDB ผู้ต้องสงสัยและ dll ไปยังไดเรกทอรีถังของโครงการปัจจุบันทำงานสองสามครั้งและอื่น ๆ ไม่มีอะไรที่ฉันสามารถชี้ไปที่จะทำงานทุกครั้ง , แม้ โชคดี.
Michael ทอดด์

คำตอบ:


16

นี่เป็นวิธีการแก้ปัญหาที่ไม่เป็นทางการและยังไม่ได้ทดสอบจากพนักงาน ESRI (พวกเขาเน้นว่านี่ไม่ใช่วิธีแก้ปัญหาอย่างเป็นทางการ)

ลองลบจาก arcmap.exe.config ในไดเรกทอรี bin

นี่คือไฟล์ \ ArcGIS \ Desktop10.0 \ bin \ arcmap.exe.config xml

ป้อนคำอธิบายรูปภาพที่นี่


3
ที่จริงแล้วมันคือ "เอกสาร" ที่นี่resources.arcgis.com/th/help/arcobjects-net/conceptualhelp/ …ฉันพบปัญหาขณะทำการเข้ารหัสปลั๊กอิน ogr-workspace และสิ้นสุดลงในคำถามที่พบบ่อยของนักพัฒนาgithub.com/ RBURHUM / arcgis-ogr
Ragi Yaser Burhum

วิธีนี้แก้ไขปัญหาสำหรับฉันเช่นเดียวกับปัญหาอื่นที่ฉันมีจากDebug.WriteLine()ข้อความของฉันที่ไม่ได้ถูกส่งไปยังหน้าต่างแสดงผลใน VS 2010
GeoSharp

ฉันพบปัญหานี้อีกครั้งและนี่คือสิ่งที่ใช้งานได้ในเวลานี้ ฉันใช้ VS 2010 Express (C #) และกำหนดเป้าหมาย. NET 4.0 ฉันต้องยกเลิกการคอมเม้นต์เวอร์ชันรันไทม์ที่สนับสนุน v4.0 และลบการอ้างอิง v2.0
เรดาร์

8

2 ปีและ 2 รุ่นในภายหลังและนี่ยังคงเป็นปัญหา เพิ่งอัปเดต / ปรับปรุง Addins ของฉันทั้งหมดเป็นเวลา 10.2 และพบปัญหานี้อีกครั้ง ดำเนินการ sugestions ทั้งหมดในโพสต์นี้และไม่มีอะไรทำงาน แต่ฉันได้ค้นพบปัญหาที่เป็นไปได้อีก 1 น่าเสียดายที่ฉันไม่แน่ใจว่านี่เป็นผู้ร้ายหรือไม่เพราะฉันได้ใช้การแก้ไขอื่น ๆ ที่เป็นไปได้ในเวลาเดียวกันด้วย

ค้นหาใหม่:ฉันรู้ว่าฉันได้พัฒนา Addins มาตั้งแต่รุ่น 10 บนเครื่องเดียวกันและหลังจากติดตั้งใหม่ไม่ได้ล้างข้อมูล ArcGIS ดั้งเดิมเสมอไป ฉันพบว่าฉันมีผู้กระทำผิดรุ่นเก่ากว่าในข้อมูล ArcGIS รุ่นก่อนหน้าใน C: \ Program Files (x86) \ ArcGIS เนื่องจาก ArcGIS จะโหลดส่วนเสริมดั้งเดิมอาจมีข้อขัดแย้งบางอย่าง ฉันลบข้อมูลแอปพลิเคชัน arcgis ดั้งเดิมทั้งหมด (Desktop10.0, Desktop10.1) ออกจาก Desktop10.2 เท่านั้นและเบรกพอยต์ก็กลับมามีชีวิตอีกครั้ง ฉันไม่ใช่ 100% อีกครั้งหากนี่เป็นวิธีแก้ปัญหา แต่อาจเป็นรายการอื่นในรายการเพื่อตรวจสอบ

ฉันเคยเห็นปัญหานี้โดยเฉพาะการถูกเรียกว่า"นักฆ่าการผลิตขั้นสูงสุด"ในเว็บไซต์อื่นและฉันไม่สามารถเห็นด้วยมากขึ้น

สรุปโดยรวมที่นี่เป็นรายการที่ต้องทำในปัจจุบันของฉันสำหรับปัญหาเบรกพอยต์ 'ตาย':

  1. ตรวจสอบให้แน่ใจว่าฉันกำลังใช้งาน Addin อยู่จริง การดีบักเกอร์เริ่มต้นแอปพลิเคชันไม่เพียงพอ - เบรกพอยต์จะปรากฏเป็น "ตาย" จนกว่าฉันจะเรียกใช้งาน addin (ปุ่มตัวเลือกเมนู ฯลฯ )

  2. ลบ OBJ และ BIN foders จากไดเรกทอรีโครงการ

  3. ลบเนื้อหาของการแคช assebmly: C: \ Users \ User \ AppData \ Local \ ESRI \ Desktop10.2 \ AssemblyCache

  4. ลบข้อมูลชุดประกอบดั้งเดิมทั้งหมด (หากเวอร์ชันปัจจุบันคือ 10.2 ลบ Desktop10.0, as1010 ข้อมูลแอสเซมบลี) ไม่มีหลักฐานว่าสิ่งนี้จะช่วยหรือเป็นส่วนหนึ่งของปัญหา แต่ไม่มีเหตุผลที่ข้อมูลนี้จำเป็นต้องมีอยู่ดังนั้นฉันจึงลบมันในกรณี (C : \ Users \ ผู้ใช้ \ AppData \ Local \ ESRI)

  5. ตามข้อเสนอแนะการสนับสนุนของ ESRI แก้ไข ArcCatalog และ ArcMap config XML (ไม่ได้ทำงานด้วยตัวเองเมื่อฉันพยายาม แต่หลายคนแนะนำวิธีนี้เป็นโซลูชันรวมถึงการสนับสนุน ESRI) ค้นหา ArcCatalog.exe.config และ ArcMap.exe.config ใน C: \ Program Files ( x86) \ ArcGIS \ Desktop10.2 \ bin เปิดแต่ละ xml ในแผ่นจดบันทึกและลบบรรทัด<supportedRuntime version="v2.0.50727"/> มันเป็นเรื่องเกี่ยวกับบรรทัดที่ห้า

  6. ลบข้อมูลแอปพลิเคชัน ArcGIS ดั้งเดิมทั้งหมดออกจากไดเรกทอรีการติดตั้ง สิ่งนี้ใช้ได้ผลสำหรับฉัน (อาจ) ไปที่: C: \ Program Files (x86) \ ArcGIS ลบทั้งหมดยกเว้นโฟลเดอร์ปัจจุบันสำหรับ Desktop10.x (เช่น Desktop10.0, Desktop10.1) เฉพาะรุ่นเดสก์ท็อปปัจจุบันเท่านั้นที่ควรอยู่ในตำแหน่งนี้

  7. ลบและเพิ่มการอ้างอิงโครงการทั้งหมดรวมถึงการอ้างอิงที่ไม่ใช่ ESRI, บันทึก, ทำซ้ำขั้นตอนที่ 2 และ 3, คอมไพล์ใหม่, รัน dbugger

  8. รีบูทคอมพิวเตอร์ (สิ่งนี้ใช้งานได้ในอดีต) นอกจากนี้ยังพบว่านี่เป็นหนึ่งในโซลูชันที่แนะนำใน Stack Overflow

  9. ใน Config.esriaddinx - เปลี่ยนปุ่มเพื่อรวม onDemand = false: (ข้อเสนอแนะของ Kirk - ดูด้านบน) สิ่งนี้ไม่ได้ผลสำหรับฉันเป็นการส่วนตัว

  10. สร้างโครงการใหม่ตั้งแต่เริ่มต้น (สิ่งนี้ได้ผลกับฉันในอดีต)


จาคอบฉันมีปัญหาที่คล้ายกัน แต่ไม่เกี่ยวข้องgis.stackexchange.com/questions/155016/ … - ปรากฎว่ามรดกเป็นปัญหาที่นั่นเช่นกัน เวอร์ชันเฟรมเวิร์ก. net ไม่เป็นปัจจุบันดังนั้นหากคุณลองทั้งหมดแล้วและยังไม่สามารถใช้งานได้ตามลิงก์เพื่อความเป็นไปได้อื่น
Michael Stimson

5

ครั้งเดียวที่ฉันได้รับสิ่งนี้คือเมื่อฉันมีอินสแตนซ์ ArcMap อื่นที่เปิดอยู่และลืมปิดก่อนที่จะสร้าง / แก้ไขข้อบกพร่อง หากคุณไม่ปิดอินสแตนซ์ทั้งหมดโดยใช้แอสเซมบลีนั้นอันเก่าจะถูกใช้ต่อไป หรืออะไรทำนองนั้น


ฉันพยายามรีบูตคอมพิวเตอร์ที่เปิด VS และเรียกใช้ดีบักเกอร์โดยไม่เปิดอินสแตนซ์อื่นของ ArcMap มันเปิดตัว ArcMap ตามปกติ "ปัญหาเบรกพอยต์" ยังคงมีอยู่
Jakub Sisak GeoGraphics

ดังนั้นฉันเพียงแค่ติดตั้ง ArcGIS และ Visual Studio บนเครื่องอื่น (ติดตั้งใหม่ทั้งหมด) และสิ่งเดียวกันก็เริ่มเกิดขึ้นอีกครั้ง ฉันลองทำตามคำแนะนำของทุกคนและดูเหมือนว่าคุณจะถูกต้อง ฉันแน่ใจว่าฉันฆ่ากระบวนการ ArcGIS ที่เปิดอยู่ทั้งหมดและเมื่อฉันทำเช่นนั้นจุดพักจะทำงาน
Jakub Sisak GeoGraphics

5

เนื่องจาก. NET Framework ของโครงการของฉันคือ 4.0 ฉันเปลี่ยนเป็นsupportedRuntime version="v4.0.30319"ArcMap.exe.config และฉันสังเกตเห็นว่าปัญหาเกิดจากการเปลี่ยนแปลงนี้ล่าช้า ฉันยังจำได้ว่า ArcMap โหลด ArcCatalog ด้วยดังนั้นฉันจึงเปลี่ยน ArcCatalog.exe.config เป็น supportedRuntime version="v4.0.30319"YES !!! มันทำงานได้อีกครั้ง ฉันใช้เวลาทั้งวันพยายามแก้ไขปัญหานี้และฉันหวังว่าจะได้ผลกับคุณเช่นกัน


1
ฉันต้องลบโฟลเดอร์ bin และ obj ด้วย
Sabin Kolarov

4

ฉันลองทำตามคำแนะนำด้านบนซักพักแล้วก็ไปหาทางออกให้ได้ การตัดไปที่การไล่ล่าฉันจะให้ทางออกก่อนจากนั้นคำอธิบาย:

  1. เปิดตัวจัดการงาน สิ้นสุดกระบวนการสำหรับสำเนาของ ArcMap.exe

  2. เปิด Windows Explorer นำทางไปยัง C: \ Users \\ Local Settings \ ESRI \ Desktop10 ..

  3. หากคุณไม่เห็น AssemblyCache จัดระเบียบ> ตัวเลือกโฟลเดอร์และการค้นหา> ดู> ยกเลิกการเลือก "ซ่อนไฟล์ระบบปฏิบัติการที่ได้รับการป้องกัน (แนะนำ)"

  4. ในไดเรกทอรีใน AssemblyCache ให้ค้นหาไดเรกทอรีที่มี. dll ของคุณ

  5. ลบ. dll

  6. สร้างโครงการและดีบักใหม่ เมื่อเพิ่มในการเปิดใช้งานคุณจะเห็นเนื้อหาแคชได้รับการฟื้นฟู

  7. หากต้องการซ่อนไฟล์ OS ที่ได้รับการป้องกันอีกครั้ง

ปัญหาสำหรับฉันคือมีอินสแตนซ์เก่าของ DLL ของฉันในโฟลเดอร์ C: \ Users \\ การตั้งค่าท้องถิ่น \ ESRI \ DesktopX.X \ AssemblyCache \ และฉันยังไม่เห็น \ AssemblyCache เพราะฉันไม่ทราบ มันเป็นไฟล์ระบบปฏิบัติการที่ซ่อนอยู่ นอกจากนี้ยังมีอินสแตนซ์ซอมบี้ของ ArcMap ที่ทำงานอยู่และเมื่อฉันพยายามลบ DLL ในตอนแรกมันถูกล็อค ความสงสัยของฉันคือสิ่งที่ทำให้เกิดปัญหาในตอนแรกคือฉันไม่ได้ปิดเซสชันการดีบักของ ArcMap ก่อนที่จะทำการคอมไพล์โค้ดใหม่และเริ่มใหม่อีกครั้ง DLL เก่าในแคชไม่สามารถเขียนทับได้เนื่องจากอินสแตนซ์ ArcMap เก่ายังคงล็อคอยู่และเมื่อได้รับการซิงค์กับรหัสใหม่เวอร์ชันแคชจะไม่ได้รับการอัปเดตอีกต่อไป (ฉันสามารถดูตามวันที่ไฟล์ที่. config, .pdb และ. xml กำลังได้รับการอัปเดต แต่ไม่ใช่. dll)


ใช่เสียงเหมือนวิธีแก้ปัญหาที่ถูกต้อง
Jakub Sisak GeoGraphics

2

ฉันกำลังเผชิญกับปัญหาเดียวกันกับของฉันเองเพิ่มในหัวข้ออื่น ๆ โดยสิ้นเชิงและฉันหลีกเลี่ยงต่อไปนี้:

ในตอนแรกเริ่มการดีบักและในเมนูให้เลือกหน้าต่างต่อไปนี้ Debug >> Windows >> โมดูลซึ่งคุณสามารถดูว่าโมดูลใดที่ถูกโหลดเมื่อเริ่มการดีบัก หากคุณไม่เห็นนั่นคือ yourAddIn.dll อย่างน้อยคุณก็รู้ว่ามันไม่ได้โหลดโดยสตูดิโอ หากคุณเห็นที่นั่นและคุณไม่สามารถวางเบรกพอยต์ที่นั่นได้สตูดิโอจะโหลดอันเก่า เมื่อต้องการตรวจสอบนี้เปลี่ยนชื่อของแอสเซมบลีในคุณสมบัติของโครงการสร้างโซลูชันเริ่มต้นการตรวจแก้จุดบกพร่องและคุณจะเห็น dll เก่าโหลดที่นั่น ฉันไม่รู้ว่าที่สตูดิโอโหลด dll เก่านี้มาจากไหน

ไปที่ Solution Explorer แล้วตรวจสอบเปรียบเทียบไฟล์ "yourAddIn.Addin" และ "yourAddIn - สำหรับ Test.AddIn" และอาจแตกต่างกัน สตูดิโอใช้เฉพาะไฟล์ที่ 2 ใน Add-In Manager! เมื่อมีการเปลี่ยนแปลงครั้งแรกนอกจากนี้ยังเปลี่ยนแท็กในการอ้างถึง dll ที่ถูกต้องและคุณอาจตรวจสอบแท็กเช่นกัน สำหรับฉันถูกตั้งค่ากลับเป็น 0 ในไฟล์ "yourAddIn - สำหรับการทดสอบ AddIn" ดังนั้นฉันเปลี่ยนกลับไปเป็น 1 (ถ้าคุณลบไดเรกทอรี bin ของ Add-in ของคุณและเริ่มสตูดิโอมันจะ promt คุณและถาม ที่คุณต้องการลบ Add-in นี้ออกจากรายการ Add-in ของคุณ! ณ จุดนี้ Studio ตั้งค่า LoadBehavior เป็น 0)

หลังจากการเปลี่ยนแปลงทั้งสองเริ่มทำงานอีกครั้ง!


ขอบคุณสำหรับการแบ่งปันประสบการณ์และการดูแลเพื่อให้รายละเอียดแก่เรา ยินดีต้อนรับสู่ชุมชนของเรา!
whuber

2

ด้วย Visual Studio ฉันได้สร้าง Add-in ใหม่สำหรับ Arcmap และเพิ่มปุ่มและแถบเครื่องมือลงไป ส่งผลให้ไฟล์ config มีลักษณะเช่นนี้:

<ESRI.Configuration xmlns="http://schemas.esri.com/Desktop/AddIns" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <Name>ArcMapAddin4</Name>
  <AddInID>{b6b350bb-084d-42b8-a44a-6dbb6a9f5906}</AddInID>
  <Description>Type in a description for this Add-in.</Description>
  <Version>1.0</Version>
  <Image>Images\ArcMapAddin4.png</Image>
  <Author>Kirk</Author>
  <Company>Microsoft</Company>
  <Date>8/15/2011</Date>
  <Targets>
    <Target name="Desktop" version="10.0" />
  </Targets>
  <AddIn language="CLR" library="ArcMapAddin4.dll" namespace="ArcMapAddin4">
    <ArcMap>
      <Toolbars>
        <Toolbar id="MyToolbar4" caption="MyToolbar4" showInitially="true">
          <Items>
            <Button refID="Microsoft_ArcMapAddin4_Button1"/>
          </Items>
        </Toolbar>
      </Toolbars>
      <Commands>
        <Button id="Microsoft_ArcMapAddin4_Button1" class="Button1" message="Add-in command generated by Visual Studio project wizard." caption="My Button" tip="Add-in command tooltip." category="Add-In Controls" image="Images\Button1.png" />
      </Commands>
    </ArcMap>
  </AddIn>
</ESRI.Configuration>

ฉันสร้างรหัสบางส่วนในตัวสร้างของปุ่มและใส่จุดพักไว้ ฉันเริ่มต้นในโหมดแก้ไขข้อบกพร่องและเห็นว่าการชุมนุมยังไม่ได้โหลด:

ป้อนคำอธิบายรูปภาพที่นี่

ฉันเปลี่ยนปุ่มเพื่อรวม onDemand = false:

ป้อนคำอธิบายรูปภาพที่นี่

เมื่อฉันเริ่ม arcmap อีกครั้งมันก็ถึงจุดพัก โปรดทราบว่าหากแถบเครื่องมือปิดเมื่อเริ่มต้นคุณจะต้องทำให้ปรากฏเพื่อให้ตัวสร้างปุ่มถูกเรียก - ดังนั้นในบางวิธีมันยังคงเป็นที่ต้องการ


ขอบคุณ @ Kirk เนื่องจากฉันกู้คืนโครงการจากการสำรองข้อมูลดูเหมือนว่าจะใช้งานได้ ฉันมักจะดีบักขั้นตอนที่อยู่ไกลออกไปตามถนน เช่นถูกเรียกจากการคลิกคู่ของปุ่มซึ่งเป็นกรณีนี้ ฉันค่อนข้างมั่นใจว่าแอสเซมบลีที่โหลดแล้ว ณ จุดนี้ (หรือควรจะเป็น แต่ไม่ใช่ด้วยเหตุผลบางอย่าง) ฉันจะลองใช้วิธีแก้ไขปัญหานี้ในครั้งต่อไปที่เกิดเหตุการณ์นี้ขึ้น
Jakub Sisak GeoGraphics

2

ต้องเปลี่ยน addin ของฉันสำหรับ arcCatalog เพื่อให้ตรงกับการใช้ framework 4 กับ 10.1 รุ่นใหม่ของ ArcCatalog
เพิ่งแสดงความคิดเห็นกับ version = "v2.0.50727" และไม่ใส่เครื่องหมายข้อคิดเห็น "v4.0.30319"

ในไฟล์ C: \ Program (x86) \ ArcGIS \ Desktop10.1 \ bin ไฟล์กำหนดค่า ArcCatlog.exe xml

หยุดที่จุดพักทันที

ดูเหมือนว่าจะเป็นปัญหาเดียวกันกับ arcmap


2

หลังจากที่ฉันย้ายข้อมูลโครงการ ESRI ArcGIS 10 จากเครื่องหนึ่งไปยังอีกเครื่องหนึ่งฉันพบข้อผิดพลาดที่เครื่องไม่สามารถโหลดไฟล์. pdb debug สำหรับ ArcMap.exe ได้ ฉันลองทุกคำแนะนำในโพสต์นี้โดยไม่มีโชค

จากนั้นฉันก็ทำสิ่งต่อไปนี้:

ฉันลบการอ้างอิงสำหรับไลบรารี Esri. * ทั้งหมดในแต่ละโครงการที่มีพวกเขาและเพิ่มพวกเขาไปยังโครงการบนเครื่องใหม่

นี่คือสิ่งที่ได้ผลในที่สุดสำหรับฉัน หากมีคนสะดุดกับปัญหาที่คลุมเครือนี้และลองทำทุกอย่างที่ระบุไว้ในหน้านี้ให้ลองสิ่งนี้ - มันง่ายและรวดเร็วและไม่เป็นอันตราย ฉันไม่แน่ใจทั้งหมดว่าทำไมต้องทำเช่นนี้ฉันเดาว่ามันเกี่ยวข้องกับการค้นหาไลบรารี่ต่อเครื่อง

นี่เป็นโครงการที่ใช้ BaseCommands / แถบเครื่องมือไม่ใช่ Add-In ใหม่ ใช้ ArcGIS 10.0 และ. NET 3.5 กับ Visual Studio 2010 บน Windows 7 Pro


2

สำหรับการกำหนดเป้าหมายเหล่านั้น. Net 4.0 Framework ต่อไปนี้ทำงานให้ฉัน

  1. ตามคำแนะนำมากมายให้ปรับเปลี่ยน ArcMap.exe.config และ ArcCatalog.exe.config ไปยังเป้าหมาย 4.0 framework
    <?xml version="1.0" encoding="utf-8" ?> <configuration> <startup> <supportedRuntime version="v4.0.30319"/> <!--supportedRuntime version="v2.0.50727"/--> </startup>
    ด้วยเหตุผลบางอย่างที่ ArcCatalog.exe.config ปรากฏขึ้นถูกล็อคเพื่อแก้ไข ฉันได้รับมันโดยการคัดลอกและแก้ไขในไดเรกทอรีอื่นแล้วแทนที่
  2. จากนั้นใน Config.esriaddinx เปลี่ยนภาษา Addin เป็น "CLR4.0"

1

สองสาเหตุที่เป็นไปได้มาถึงใจของฉัน:

  1. Addin ไม่ได้ลงทะเบียนอย่างถูกต้องดังนั้น DLL จะไม่ถูกโหลดลงในกระบวนการ ArcMap ที่กำลังดีบั๊ก

  2. โครงการของคุณกำหนดเป้าหมายไปที่. NET 4. ลองกำหนดเป้าหมาย. NET 3.5 แทน


การกำหนดเป้าหมาย. Net 3.5 ฉันไม่เข้าใจว่าทำไมทุกอย่างจะทำงานได้ดีและในทันใดไม่
Jakub Sisak GeoGraphics

1

หากคุณกำลังเข้ารหัสด้วยหลายโครงการในโซลูชัน Visual Studio เดียวกันคุณอาจพบสถานการณ์ที่ Visual Studio (VS) "ปิดใช้งาน" เบรกพอยต์ของคุณและคุณไม่สามารถก้าวผ่านโค้ดของคุณได้ เรื่องนี้เกิดขึ้นกับฉันเมื่อไม่นานมานี้ที่ฉันไม่สามารถเข้าสู่โครงการแอสเซมบลี DLL ที่ขึ้นกับว่าถูกเรียกจากโปรเจ็กต์หลักของฉัน

คำเตือน VS แนะนำว่าแอสเซมบลีของฉัน (DLL) ล้าสมัยและไม่ตรงกับรหัสของฉันทั้งหมด มีตัวเลือก VS เพื่อปิดข้อกำหนดที่รหัสตรงกัน แต่โดยสังหรณ์ใจนี่เป็นความคิดที่ไม่ดีและถูกสำรองไว้โดยโพสต์อินเทอร์เน็ต ฉันอ่านเว็บไซต์จำนวนมากและมีคำแนะนำที่น่าสนใจมากมาย

ในตอนท้ายฉันค้นหา DLL ผลลัพธ์จากเครื่องที่ต้องพึ่งพาของฉันและพบสำเนาเก่า ๆ หลายแห่งในตำแหน่งที่ตั้งต่าง ๆ บนคอมพิวเตอร์ของฉัน (น่าจะมาจากการทดลองก่อนหน้านี้และการกำหนดค่าโครงการ) ดังนั้นฉันจึงลบทั้งหมดและสร้างโซลูชันขึ้นใหม่ตั้งแต่ต้น นี่เป็นการแก้ไขปัญหาของฉัน ฉันเดาว่าโครงการปัจจุบันของฉันมีผลผูกพันกับสำเนาเก่าอย่างใดอย่างหนึ่งโดยไม่ตั้งใจและไม่ได้ใช้งานบิลด์ล่าสุดที่วางไว้ในโฟลเดอร์ดีบั๊กของฉัน


1

สิ่งที่ทำงานให้ฉันไม่ได้ลบ arcmap.config.exe ตามที่อธิบายไว้ในโพสต์โดย Jakub ข้างต้น แต่การตั้งค่าแท็ก "SupportedRuntime" ในไฟล์นี้เป็น Framework ที่ถูกต้องซึ่งคุณกำหนดเป้าหมายภายใน Visual Studio รุ่นที่ถูกต้อง:

<startup>
    <supportedRuntime version="v3.5"/>
</startup> 

1

โครงการ ArcObjects หลายครั้งที่ฉันรวบรวมรายการเหตุผลที่การดีบั๊กอาจใช้ไม่ได้กับ Add-in, Extensions, และ Command (pre-add-in) ในลำดับใดไม่มี:

  1. คุณอยู่ในโหมด Release Studio ของ Visual แทนโหมด Debug
  2. เครื่องมือรุ่นเก่ายังคงลงทะเบียนกับ ArcMap / ArcCatalog และสิ่งเหล่านี้ป้องกันไม่ให้โหลดเวอร์ชันการดีบักของคุณหรือเครื่องมืออื่น ๆ ที่มีชื่อเดียวกันถูกลงทะเบียน
  3. โครงการ / โซลูชันต้องการการทำความสะอาดและหากจำเป็นให้ไปที่ \ bin และ \ obj และลบไฟล์ใด ๆ
  4. ในบางกรณีจุดพักสามารถถูกกดได้หลังจากเปิดใช้งานเครื่องมือแล้วเท่านั้น (ตามต้องการ)
  5. หากไม่มีการหยุดจุดพักอาจเป็นไปได้มีข้อยกเว้นเกิดขึ้นในตัวสร้างและเครื่องมือจะไม่ทำงาน ตรวจสอบโดยแสดงข้อยกเว้น CLR ทั้งหมดในเมนูแก้ไขข้อบกพร่อง
  6. รายการใน C: \ Users \ <name> \ Local Settings \ ESRI \ DesktopX.X \ AssemblyCache ต้องลบ

มีหลายขั้นตอนที่ต้องเริ่มการทำงานของ ArcMap หากสิ่งอื่นล้มเหลวการรีสตาร์ทเครื่องนั้นเป็นทางเลือกที่ง่าย แต่ฉันเคยทำสิ่งนี้สร้างความแตกต่าง


1

สิ่งที่ได้ผลสำหรับฉันถูกคัดค้านโดย AnthonyWJones ใน /programming/7192361/silverlight-project-wont-enter-debug-mode : "เปิดคุณสมบัติของโครงการเว็บที่เกี่ยวข้องเลือกแท็บเว็บเลื่อนไปที่ ด้านล่างและในส่วน "ดีบั๊ก" ตรวจสอบให้แน่ใจว่าได้ทำเครื่องหมาย "Silverlight" แล้ว


0

ฉันมีสิ่งนี้เกิดขึ้นกับฉันครั้งหรือสองครั้ง ถ้าฉันจำได้อย่างถูกต้องฉันก็สามารถทำให้เบรกพอยต์ทำงานได้เมื่อฉันทำการเปลี่ยนแปลงรหัสเล็กน้อยซึ่งหมายความว่าแอปพลิเคชันนั้นถูกสร้างขึ้นมาใหม่ จะเกิดอะไรขึ้นเมื่อคุณสร้างหรือสร้างโครงการใหม่


ฉันพยายามสร้างโครงการขึ้นใหม่และทำการเปลี่ยนแปลงหลายอย่าง แต่ยังคงจุดพัก "ตาย" ...
Jakub Sisak GeoGraphics

0

ฉันไม่อยากจะเชื่อว่ามีคนอีกจำนวนมากที่ไม่มีปัญหานี้ ตอนนี้ฉันพบเจอสิ่งนี้เกือบทุกครั้งที่ฉันปรับปรุงและแก้ไขจุดบกพร่องเพิ่มเติมของฉัน

ไม่มีวิธีการแก้ปัญหาดังกล่าวข้างต้นทำงาน ในการแก้ไขปัญหานี้ฉันต้องลบทั้งโครงการและกู้คืนจากการสำรองข้อมูล สิ่งนี้ทำให้ฉันเชื่อว่ามีบางสิ่งในโครงการนั้น ๆ เกิดความเสียหายเนื่องจากมันมักจะเริ่มเกิดขึ้นเมื่อ ArcMap ขัดข้องในระหว่างการดีบัก


มีกระบวนการ ArcMap.exe ที่เอ้อระเหยอยู่บ้างไหม? บางครั้ง Add-in, ส่วนขยาย, คำสั่ง ฯลฯ สามารถเก็บไว้ในทรัพยากรหรือทำให้เกิดสภาพการแย่งชิงที่ป้องกันไม่ให้ ArcMap ออกจากการทำงานอย่างสมบูรณ์
blah238

ไม่มีกระบวนการ ArcMap.exe ทำงาน ตอนนี้ฉันมีคำตอบจากพนักงาน ESRIให้ลองลบ <supportRuntime version = "v2.0.50727" /> จาก arcmap.exe.config ในไดเรกทอรี bin อย่างไรก็ตามฉันไม่แน่ใจว่าฉันลบรายการนี้จากที่ใดและฉันเพิ่งกู้คืนโครงการของฉันจากการสำรองข้อมูลและตอนนี้มันใช้งานได้ เมื่อฉันรู้เพิ่มเติมเกี่ยวกับการแก้ไขนี้ฉันจะพัง ArcMap ในระหว่างการดีบักซึ่งมักจะเกิดขึ้นและจะลอง
Jakub Sisak GeoGraphics

0

คุณสร้างโครงการโดยใช้ Framework 4 หรือไม่ ฉันมีปัญหาเดียวกัน แต่เมื่อฉันเปลี่ยนไปใช้ Framework 3.5 จะทำงานได้ดี


0

พยายามทำความสะอาดและสร้างใหม่จากนั้นเรียกใช้โดยไม่มีการดีบักเมื่อแอปพลิเคชันรันแนบใน VS


0

ฉันรู้ว่านี่อาจฟังดูชัดเจนเกินไป แต่ฉันจะพูดถึงต่อไปว่าคุณต้องใช้ Visual Studio รุ่นที่เหมาะสม ตัวอย่างเช่นปัญหานี้อาจเกิดขึ้นกับรุ่นด่วนปีที่กำหนดในขณะที่มันสามารถทำงานกับรุ่นที่ดีที่สุด หากคุณใช้งานปี 2010 ลองเปลี่ยนเป็น 2012 จากนั้นลองเปลี่ยนจากด่วนเป็นสุดยอด ฉันจะทำเช่นนี้หากคุณยังไม่เคยยุ่งกับปัญหาโหลดสัญลักษณ์ ESRI จะให้ข้อมูลเกี่ยวกับการดาวน์โหลดสัญลักษณ์ไปยังแคชดังที่กล่าวไว้ในลิงค์ด้านบน (ArcObjects 10. NET SDK ช่วยเหลือ) อย่างไรก็ตามสิ่งนี้อาจไม่จำเป็น ตรวจสอบให้แน่ใจว่าคุณใช้เฟรมเวิร์ก. net ที่เหมาะสมเช่นกันก่อนทำการดีบั๊กเช่น. net 3.5 ในรุ่นที่เก่ากว่า

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.