ไม่สามารถเริ่มแพคเกจ Window10 IoT


11

ฉันมีแอพที่ไม่มีส่วนหัวที่พัฒนาใน C # สำหรับ Raspberry Pi 2 B

ฉันสามารถดีบักแอปพลิเคชันได้ดีใน visual studio ฉันมีสายอีเธอร์เน็ตเชื่อมต่อโดยตรงระหว่างเวิร์กสเตชันของฉันและบอร์ด เมื่อฉันนำทางในเบราว์เซอร์ของฉันไปที่: minwinpc:8080/AppXManager.htmฉันสามารถดูโปรแกรมที่ฉันต้องการในรายการแอพที่ติดตั้ง ฉันได้ลองลบมันออกมาสร้างใหม่ / นำไปใช้งานซ้ำใน VS และแอปออกแล้วกลับมาจากรายการ ดังนั้นฉันรู้รุ่นปัจจุบัน

ปัญหาคือ: ฉันไม่สามารถรับ "เริ่ม" จากเว็บ GUI ฉันเลือกแอพของฉันจากนั้นรับข้อผิดพลาดการติดตาม:

Failed to start package BlinkyHeadlessCS-uwp_q8jk9dv1tcdg!App

ฉันจะตั้งโปรแกรมกะพริบของฉันให้เริ่มจาก Web UI ได้อย่างไรฉันจะให้มันทำงานโดยอัตโนมัติหลังจากที่ฉันบู๊ตได้อย่างไร


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

ในการเริ่มต้นแอปอัตโนมัติคุณต้องใช้ PowerShell และตั้งค่าการตั้งค่ารีจิสทรี จะลองตอบคำถามนี้เมื่อฉันได้รับแอป
Piotr Kula

ขอบคุณสำหรับแผนภาพ ... ข้อผิดพลาดที่ฉันได้รับหลังจากทำตามขั้นตอนด้านล่างในการทำเครื่องหมายในช่อง "ไม่เปิดใช้ ... " เป็นประเภทเอาต์พุต 'คอมโพเนนต์รันไทม์ของ Windows' ไม่ได้รับการสนับสนุนจากเป้าหมายของโครงการอย่างน้อยหนึ่งรายการ
fifamaniac04

ต้องแน่ใจว่าเลือกแขนแล้วไม่ใช่ x86
Piotr Kula

คุณสามารถดีบักโดยใช้พอร์ตอนุกรมตามที่อธิบายไว้ที่นี่ .. แต่ไม่แน่ใจว่าคุณอาจใช้ข้อมูลที่มีประโยชน์ ms-iot.github.io/content/en-US/win10/Windbg.htm
Piotr Kula

คำตอบ:


10

WOOO HOOO !!!!

ตกลงดังนั้นในที่สุดฉันก็รับมัน ...

นี่คือสิ่งที่ใช้งานได้สำหรับฉันด้วยการปรับใช้แอปหัวขาดหนึ่ง (1) แอปเท่านั้น

ขั้นที่ 1: เปิด Powershell ในฐานะผู้ดูแลระบบ

ขั้นที่ 2: เชื่อมต่อกับบอร์ดด้วยคำสั่งนี้: net start WinRM... หมายเหตุฉันมีสายเคเบิลอีเธอร์เน็ตโดยตรงจากแล็ปท็อปของฉันไปยังบอร์ด raspberry pi 2 หมายเหตุหากคุณใช้งาน VS อยู่แล้วมันจะบอกคุณว่าคุณได้สร้างการเชื่อมต่อแล้ว ...

ขั้นตอนที่ 3: ใน PowerShell ให้เรียกใช้สิ่งนี้ต่อไปSet-Item WSMan:\localhost\Client\TrustedHosts -Value minwinpc... ฉันทิ้งชื่อเริ่มต้นสำหรับอุปกรณ์ของฉัน หมายเหตุเมื่อได้รับแจ้งให้พิมพ์ 'Y'

ขั้นตอนที่ 4: Enter-PSSession -ComputerName minwinpc -Credential minwinpc\Administrator... หมายเหตุคุณจะได้รับพร้อมท์ให้ใส่รหัสผ่าน ... โดยสมมติว่าเป็นค่าเริ่มต้นให้ป้อน "p @ ssw0rd" - ใช่และตรงตามตัวพิมพ์ใหญ่ - เล็ก

ขั้นตอนที่ 5: รอสักครู่ ... จริงจังใช้เวลาสักครู่ ...

ขั้นที่ 6: ใน PowerShell ตอนนี้คุณจะเห็นชื่ออุปกรณ์ในพรอมต์ - พิมพ์คำสั่งต่อไปนี้: IotStartup remove

Step7: ใน powershell ... พิมพ์: IotStartup list... จากนี้เราต้องการรับชื่อของแอพ headless ที่คุณต้องการเริ่มต้น

ขั้นตอนที่ 8: ใน PowerShell ... ประเภท: IotStartup add headless <the-exact-full-name-of-the-headless-app-here>

ขั้นที่ 9: ใน PowerShell ... ประเภท: setbootoption headless.... สิ่งนี้จะแจ้งให้คุณรีบูตหากประสบความสำเร็จ

ขั้นที่ 10: ใน PowerShell ... พิมพ์: shutdown /r /t 0... นี่จะทำให้อุปกรณ์ของคุณรีบูตทันที

- ทำ .... จากที่นี่เพียงแค่รอให้แอพของคุณเริ่มต้นใหม่! ฉันมีโปรแกรม LED ที่เรียบง่ายและมันก็เริ่มต้นเองในที่สุดหลังจากรีบูต


ฉันสามารถใช้วิธีนี้เช่นกัน Microsoft ควรแก้ไขปัญหาพื้นฐานที่ทำให้คุณไม่สามารถทำได้จาก Web UI
Jamie Keeling

1

คุณสามารถแนบไปกับแอพของคุณได้จาก Visual Studio (Debug เท่านั้นดูเหมือนว่ารุ่นจะไม่ทำงาน)

  • เปิด Visual Studio พร้อมด้วยซอร์สโค้ดของโครงการของคุณ
  • ในโครงการในโซลูชัน Explorer คลิกขวาที่มัน
  • ไปที่ Debug
  • ทำเครื่องหมาย Do not launch, but debug my code when it starts
  • บันทึก
  • คลิกที่ Run บน "Remote Machine"
  • มันจะปรับใช้แอพ แต่จะไม่เรียกใช้
  • ดังนั้นรันบน Pi หรือผ่าน WebGui และหวังว่า Visual Studio จะผิดพลาดทำให้คุณมีความคิดที่ดีขึ้นเกี่ยวกับสิ่งที่ผิดพลาด

หากแอปของคุณไม่พบจุดพักยกเว้นขณะทำการดีบั๊ก แต่คุณยังคงได้รับข้อผิดพลาดจะมีสิ่งอื่นที่เสียหาย บางทีการ์ด SD ของคุณอาจมีไฟล์เสียหาย ลองการ์ด SD อื่นและติดตั้งใหม่

แอป Autostart

คุณสามารถทำสิ่งนี้ผ่าน WebGui ทันที

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

หรือคุณสามารถเชื่อมต่อกับบรรทัดคำสั่ง IoT powershell โดยใช้ SSH หรือ Powershell ฉันคิดว่า SSH นั้นง่ายกว่า

  • แสดงรายการแอปที่ติดตั้งคุณสามารถระบุชื่อแอปเป็นตัวกรอง
  • ใช้คำสั่งเพิ่มheaded(สำหรับแอปที่ใช้หน้าจอ) หรือheadless(สำหรับแอปที่ไม่มีหัว) และคำสั่ง appName หากผลลัพธ์ก่อนหน้านั้นเป็นรายการเดียวหรือชื่อแปลก ๆ เต็มแทนheader :
  • เริ่มต้นใหม่

คำสั่ง:

  iotstartup list <optional:appname>
  iotstartup add headed:headless 64e9d643-619e-40e0-91b0-8e54f3e32aa8_953wxc6k7hb7r!App
  # AppID changed to your 64e9d643-619e-40e0-91b0-8e54f3e32aa8_953wxc6k7hb7r!App
  shutdown /r /t 0

และเพื่อรีเซ็ตแอปเริ่มต้น

  iotstartup add headed DefaultApp

ตัวเลือกการแก้จุดบกพร่องเพิ่มเติม

คุณยังสามารถแนบกับกระบวนการระยะไกลโดยไม่ต้องเปิดโครงการใด ๆ และเพียงคลิกที่Attachปุ่มเล่น แต่วิธีนี้จะใช้งานไม่ได้หากเกิดข้อผิดพลาดขณะเปิดตัว แต่อาจใช้งานได้หากแอปขัดข้องในบางตำแหน่ง

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

คุณสามารถดูการถ่ายโอนข้อมูลความผิดพลาดจาก WebGUI ภายใต้การดีบัก แต่ไฟล์การถ่ายโอนข้อมูลเหล่านั้นเป็นเคอร์เนลที่เฉพาะเจาะจงและสามารถแก้ปัญหาได้อย่างน่าเบื่อมาก สิ่งนี้ไม่รวมถึงข้อความแสดงข้อผิดพลาดหรือง่ายต่อการเข้าใจการถ่ายโอนข้อมูลแบบกองซ้อน ข้อมูลเพิ่มเติมที่นี่แม้ว่าฉันจะไม่สามารถเปิด.dmpไฟล์ใด ๆใน Visual 2015 อาจเป็นเพราะรุ่นชุมชน แต่แม้ Pro 2013 ของฉันจะไม่เปิดเลย

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

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