ไม่พบเฟรมเวิร์กที่ระบุ 'Microsoft.AspNetCore.App', เวอร์ชัน '3.1.0' สำหรับ Linux Azure WebApp


9

ปัญหา

หลังจากอัปเกรด. Net Core 2.2 Linux Web App เป็น. Net Core 3.1 ใน Azure แอปพลิเคชันไม่ทำงานพร้อมSpecified framework 'Microsoft.AspNetCore.App', version '3.1.0' was not foundข้อผิดพลาด ฉันได้ไปเท่าที่จะสร้างใหม่ Linux Web App กับสุทธิหลัก 3.1 และหลังจากที่พร้อมรับคำสั่งทุบตียังคงแสดงผลเป็นdotnet --list-runtimes2.2.7

รายละเอียด

เว็บไซต์ลง

ข้อผิดพลาดของแอปพลิเคชัน

Logstream

แอปพลิเคชันการรายงานหยุดทำงานเนื่องจากไม่พบ. net core 3.1

Logstream

สร้างแอปพลิเคชันเว็บ. net core ใหม่

3.1 linux webapp ใน North Central ปัญหาเดียวกัน

สร้างเว็บแอปใหม่แล้ว

ตรวจสอบให้แน่ใจว่ามันทำงานใน North Central US

ตามhttps://aspnetcoreon.azurewebsites.net/ควรได้รับการสนับสนุน. netCore 3.1 แบบเต็ม

ยังคงเป็น. net core 2.2.7 cmd prompt 2.2.7

opt/dotnet/runtimes รายการ 3, 3.0 และ 3.0.0 แต่ไม่มี 3.1` ป้อนคำอธิบายรูปภาพที่นี่

ตัวแปรสภาพแวดล้อม

ตัวแปรสภาพแวดล้อมของฉันในรายการ Azure FRAMEWORK_VERSION = ltsแทนที่จะเป็น 3.1

การประกาศ

สิ่งนี้ถูกเผยแพร่จากไปป์ไลน์ azure devops ci โดยใช้งาน Azure AppService Deploy 3.1 ไม่มีให้ที่นี่ดังนั้นฉันเลือกLTS

Devops ปล่อยไปป์ไลน์

อัปเดต 1

ดูเหมือนว่าผู้ร้ายคือ 3.1 หายไปจากกรอบสแต็กในงาน Azure Devops Web App / Web Service

เมื่อใดก็ตามที่ฉันเผยแพร่จาก CI เฟรมเวิร์กแอปพลิเคชันจะได้รับการอัปเดตเป็นสิ่งที่เลือกในเมนูแบบเลื่อนลงนี้ ถ้าฉันไปเปลี่ยนเฟรมเวิร์กเป็น 3.1 บน Azure Web App ด้วยตนเองไซต์จะปรากฏขึ้น แต่การเผยแพร่ครั้งต่อไปมันจะกลับลงมาเพราะมันจะเปลี่ยนเฟรมเวิร์กกลับไปเป็นการตั้งค่าใน ci

คำถามใหม่

ฉันจะรับ Azure Devops Release ไปยังเผยแพร่งาน. net core 3.1 ได้อย่างไร

อัปเดต 2

โพสต์ฟอรัม Azure Devops ที่เกี่ยวข้อง

กำลังถูกตรวจสอบ ณ 2/23/2020

.Net Core 3.1 ปรับใช้ไปป์ไลน์กับ Linux App Service

วิธีแก้ปัญหาที่แนะนำ

  1. ใช้ YML สำหรับขั้นตอนการวางจำหน่ายและเปลี่ยนเวอร์ชั่นจาก3.0เป็น3.1บันทึกด้วยคำตอบและเธรดนี้ด้วยตนเอง
  2. ปรับรุ่นจากการเปิดตัวไปframework dependent การอ้างอิงself contained
  3. ปรับลดรุ่นเป็น. NetCore 3.0

แทนที่จะใช้ LTS โปรดลองใช้รุ่นล่าสุด (ไม่แนะนำ แต่ลองใช้แล้วจะดูว่าใช้งานได้หรือไม่)
— Manish

ฉันทำและมันไม่ทำงาน แต่ดูเหมือนว่า CI จะเป็นปัญหา ทุกครั้งที่ฉันเผยแพร่ด้วย CI จะเปลี่ยนกรอบงานบนเว็บแอพเป็นอะไรก็ได้ที่เลือกใน CI หากฉันไปที่บริการแอพหลังจาก CI เผยแพร่และเปลี่ยน runtime stack เป็น 3.1 ด้วยตนเองไซต์จะปรากฏขึ้นจนกว่าจะมีการเผยแพร่ครั้งต่อไป
— w00ngy

อย่าโพสต์ภาพของรหัสข้อมูลข้อความผิดพลาด ฯลฯ - คัดลอกหรือพิมพ์ข้อความลงในคำถาม วิธีถาม
— Rob

คำตอบ:


2

ฉันพบสถานการณ์เดียวกันโดยใช้ข้อมูลที่คุณให้ไว้ฉันสามารถแก้ไขปัญหาได้ด้วยการตั้งค่าด้วยตนเองในไฟล์ .yml Devops Pipelines Build ดูเหมือนว่าพวกเขาจะหายไปจากค่าจาก RunTime Stack หล่นลง หากคุณอัพเดตไฟล์ .yml กระบวนการสร้างด้วยตนเองตามที่เห็นที่นี่:

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

นี้จะเลือกรุ่นกรอบงานที่เหมาะสม หวังว่าสิ่งนี้จะแก้ไขปัญหาของคุณด้วยการปรับใช้ Azure Devops CI Pipeline


ฉันสงสัยว่าจะแก้ไขได้ไหม ฉันจะลองยิงดู มันอาจจะเป็นงานเล็ก ๆ น้อย ๆ สำหรับฉันที่จะแปลงทั้งรีลีสของฉันเป็น yml ดังนั้นฉันยังไม่ได้ลองเลย ฉันจะแจ้งให้คุณทราบผล! ขอบคุณคำตอบ !!
— w00ngy

2
ดูเหมือนว่าเป็นไปได้ที่จะป้อนสตริง DOTNETCORE | 3.1 โดยตรงในช่อง Runtime Stack (และแก้ไขปัญหา) - ดังนั้นไม่จำเป็นต้องแปลงไพพ์ไลน์ของการปล่อยเป็น yaml!
— rdavisau

ฉันเพิ่งจะพูดเช่นเดียวกับ @rdavisau - การแก้ไขที่ง่ายที่สุดคือการพิมพ์รุ่น 3.1 ลงในกล่อง Runtime Stack และดูเหมือนว่าจะใช้ค่า
— Appleby จะ

อย่าโพสต์ภาพของรหัสข้อมูลข้อความผิดพลาด ฯลฯ - คัดลอกหรือพิมพ์ข้อความลงในคำถาม วิธีถาม
— Rob

rdavisau - นี่คงช่วยฉันได้มาก! ฮ่า ๆ.
— w00ngy

1

วิธีแก้ปัญหาที่ง่ายกว่าคือการพิมพ์DOTNETCORE|3.1ลงในรายการแบบหล่นลงของกองซ้อนในแบบ devops (ขอบคุณ rdavisau!)

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

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