เกิดข้อผิดพลาดในการเผยแพร่ไซต์ ASP.NET Core 3.1 ไปยัง Azure จาก Visual Studio 2019


9

ฉันมีแอปพลิเคชั่นASP.NET Core 3.0 ที่มีอยู่ก่อนหน้าซึ่งปรับใช้กับบริการแอป Azure ได้สำเร็จ(โดยใช้AspNetCoreModuleV2โมดูล) หลังจากที่อัพเกรดให้แอป (ปล่อยของวันนี้) ASP.NET 3.1 แกนแอพลิเคชันสร้างและการทำงานอย่างถูกต้องในเวอร์ชันภายในประเทศของฉันIIS ด่วน เมื่อฉันพยายามเผยแพร่ไปยัง Azure App Service โดยใช้ (วางจำหน่ายวันนี้) Visual Studio 16.4แต่ฉันได้รับข้อผิดพลาดต่อไปนี้:

ไฟล์สินทรัพย์ 'C: \ Project \ obj \ project.assets.json' ไม่มีเป้าหมายสำหรับ '.NETCoreApp, Version = v3.0' ตรวจสอบให้แน่ใจว่าการคืนค่าทำงานและคุณได้รวม 'netcoreapp3.0' ไว้ใน TargetFrameworks สำหรับโครงการของคุณ

หมายเหตุ

  • ทั้งหมด<PackageReference>เป็นไปMicrosoft.AspNetCore, Microsoft.EntityFrameworkCoreและMicrosoft.Extensionsได้รับการปรับปรุงให้3.1.0
  • ฉันทำความสะอาดโซลูชันของฉันและแม้กระทั่งทำให้objโฟลเดอร์ของฉันไม่ทำงานเพื่อให้แน่ใจว่าไม่มีการอ้างอิงใด ๆ
  • ข้อผิดพลาดนี้จะถูกสร้างขึ้นจากรุ่นของ3.1.100Microsoft.PackageDependencyResolution.targets

ฉันเข้าใจว่ามีบางสิ่งที่ยังติดอยู่กับการพึ่งพา. NET Core 3.0 แต่ก็ไม่ชัดเจนว่าทำไมถึงเกิดปัญหาระหว่างการปรับใช้เท่านั้น มีAzure App บริการที่ยังไม่พร้อมสำหรับ.NET หลัก 3.1 ? หรือนี่เป็นปัญหาของเป้าหมายการแก้ไขปัญหาการพึ่งพาหรือไม่


ขอบคุณ @Panagiotis Kanavos asp.net-core-3.1สำหรับการติดแท็กนี้กับ ฉันไม่มีชื่อเสียงที่จำเป็นในการสร้างแท็กใหม่
Jeremy Caney

เห็นได้ชัดว่าขั้นตอนต่อไปของฉันคือการเริ่มต้นด้วยเทมเพลตโครงการASP.NET Core 3.1ใหม่พยายามที่จะปรับใช้กับบริการแอป Azure ที่สดใหม่แล้วนำการอ้างอิงขึ้นมาใหม่จนกระทั่งฉันสามารถสร้างปัญหาขึ้นมาได้ ฉันจะไม่มีเวลาทำอย่างนั้นจนกว่าจะถึงสัปดาห์นี้ ก่อนหน้านั้นฉันหวังว่าคนอื่นอาจเข้าใจถึงข้อผิดพลาดประเภทนี้หรือพบวิธีแก้ปัญหาด้วยตนเอง
Jeremy Caney

เอกสารแสดงวิธีการเลือก. NET Core SDK เวอร์ชันอย่างชัดเจน คุณเคยลองไหม 3.1 SDK ปรากฏในรายการหรือไม่
Panagiotis Kanavos

@PanagiotisKanavos: โครงการนี้ไม่ได้รับการตีพิมพ์โดยใช้สีฟ้าท่อเลย ที่กล่าวมานี้ไม่เตือนฉันว่ามียัง<TargetFramework>การตั้งค่าในpubxmlรายละเอียดว่าVisual Studioอาศัยซึ่งผมเว้นระยะห่างใน อ๊ะ! การเปลี่ยนไปเป็นnetcoreapp3.1ให้ตรงกับcsprojเป้าหมายแก้ไขปัญหาได้ทันที (สิ่งนี้จะแนะนำปัญหาใหม่กับAzure App Service ที่สะดุดตัวเองบนเป้าหมาย แต่อาจแก้ไขได้โดยใช้การปรับใช้ที่มีในตัวเองคล้ายกับลิงก์ที่คุณให้ไว้) ขอบคุณสำหรับการชี้ไปในทิศทางที่ถูกต้อง!
Jeremy Caney

1
ดีขอบคุณสำหรับการค้นหาคำถามนี้ (และคำตอบ) ฉันเริ่มรู้สึกหงุดหงิดมากกับการนำการเปลี่ยนแปลง MS ที่ทันสมัย ​​(ตามคำแนะนำและกำลังใจ) มาใช้เพื่อแก้ไขปัญหาเช่นนี้เท่านั้น
แฟรงค์

คำตอบ:


13

ปัญหาเฉพาะหน้าตามที่ระบุในคำถามต้นฉบับเกี่ยวข้องกับการมีอยู่สองแห่งที่<TargetFramework>ตั้งไว้:

  1. แฟ้มโครงการ (เช่นcsproj)
  2. รายละเอียดการเผยแพร่ (เช่นpubxml)

<TargetFramework>ต้องมีการปรับปรุงในทั้งสถานที่และพวกเขาจะต้องตรงเผง ไม่เช่นนั้นการเผยแพร่จะไม่สามารถค้นหาเป้าหมายในproject.assets.jsonไฟล์ซึ่งสร้างขึ้นโดยอิงจาก<TargetFramework>ในcsjprojไฟล์

หมายเหตุ:คุณอาจคาดหวังว่าpubxmlไฟล์จะเลื่อนไปที่การ<TargetFramework>ตั้งค่าในcsprojไฟล์ แต่ก็ไม่เป็นเช่นนั้น

แก้ไขข้อความ

ในการแก้ไขนี้ผ่านโปรแกรมแก้ไขข้อความ

  1. เปิด~/Properties/PublishProfilesโฟลเดอร์
  2. เปิดสิ่งที่*.pubxmlคุณต้องการแก้ไข
  3. แก้ไขค่าของ<TargetFramework>เป็นnetcoreapp3.1:
<TargetFramework>netcoreapp3.1</TargetFramework>

Visual Studio 2019

ในการปรับเปลี่ยนนี้ผ่านVisual Studio 2019 IDE

  1. คลิกไอคอนรูปเฟืองบนแถบเครื่องมือคลิกปุ่มเผยแพร่บนเว็บ (อยู่ทางด้านขวาของไอคอนเผยแพร่)
  2. สมมติว่าTarget Frameworkนั้นไม่ได้ถูกตั้งค่าให้netcoreapp3.1คลิกที่ไอคอนแก้ไขถัดจากมัน
  3. ตรวจสอบให้แน่ใจว่ากรอบเป้าหมายnetcoreapp3.1มีการตั้งค่า
  4. คลิกบันทึก

คำเตือน:เมื่อใช้ IDE คุณอาจพบปัญหาที่นี่ เมื่อแก้ไขโปรไฟล์คุณจะเห็นค่าใหม่จากไฟล์โครงการของคุณ (เช่นnetcoreapp3.1) ที่เลือกไว้แล้ว เมื่อคุณคลิกบันทึกจะเปลี่ยนกลับเป็นค่าดั้งเดิม (เช่นnetcoreapp3.0ในกรณีของฉัน) นี่เป็นเพราะคุณไม่ได้เปลี่ยนค่าในอินเทอร์เฟซจริงซึ่ง Visual Studio ผิดพลาดเพราะไม่มีการเปลี่ยนแปลงค่าพื้นฐาน หากคุณสลับค่าอื่นชั่วคราว (เช่นการกำหนดค่า )ชั่วคราวVisual Studio จะรับรู้ว่ามีการเปลี่ยนแปลงเกิดขึ้นและค่าทั้งสองจะได้รับการอัปเดตใน*.pubxmlไฟล์

ขอขอบคุณอีกครั้งไปที่ @PanagiotisKanavos เพื่อชี้ให้ฉันไปในทิศทางที่ถูกต้อง (ดูความคิดเห็นในกระทู้เดิม)


ขอบคุณที่โพสต์โซลูชัน! ฉันกำลังดิ้นรนกับเรื่องนี้เมื่อฉันพยายามที่จะเผยแพร่เมื่อคืนและมันก็ไม่ได้ทำให้รู้สึกใด ๆ ในวิซาร์ดการเผยแพร่จะมีการเลือก 3.1 เป็นเป้าหมายดังนั้นฉันจึงคิดว่ามันโอเค แต่เมื่อฉันเปิดpubxไฟล์เมื่อคุณอธิบายว่ามันยังอยู่ใน 3.0 น่าผิดหวังมาก สุจริตฉันไม่มีอะไรนอกจากแปลกปิดบังและแสดงข้อบกพร่องและปัญหาทั้งหมดตั้งแต่ VS 16.3 และ. NET Core 3.0 ได้รับการปล่อยตัว ขอบคุณอีกครั้ง!
Gup3rSuR4c

Idk ถ้าคุณได้รับสิ่งนี้ด้วยเช่นกัน แต่มันก็ค่อนข้างดีที่จะบอกคุณว่ามันจะขึ้นอยู่กับเฟรมเวิร์กหรือไม่ การเผยแพร่ที่ควรจะเป็น 1 นาทีหรือมากกว่านั้นคือตอนนี้ 15+ นาที ...
Gup3rSuR4c

FYI: ตั้งแต่ฉันเดิมโพสต์นี้ไมโครซอฟท์มีการปรับปรุงบริการ App Azureเพื่อให้การสนับสนุนพื้นเมืองสำหรับ.NET คอร์ 3.1 ระบุว่าฉันได้ลบคำเตือนเกี่ยวกับHTTP Error 500.30 - ANCM In-Process Start Failureข้อความจากข้อความต้นฉบับของฉัน ก่อนหน้านี้สิ่งนี้มีความจำเป็นในการเผยแพร่การแจกจ่ายแอปพลิเคชันของคุณอย่างสมบูรณ์ (ที่กล่าวว่าโดยทั่วไปจะมีเวลาหน่วง 2-3 วันระหว่างการวาง. NET Coreเวอร์ชันใหม่และจะรวมเข้ากับสภาพแวดล้อมAzure App Serviceดังนั้นจึงเป็นประโยชน์ที่ควรระวังในการอัปเดตในอนาคต)
Jeremy Caney

1
ดีฉันเพิ่งอัปเดตเวอร์ชันเฟรมเวิร์กในคุณสมบัติโปรเจ็กต์และไม่แม้แต่จะนึกถึงไฟล์. pubxml นี่เป็นสาเหตุที่ทำให้การเผยแพร่ของฉันหยุดทำงานหลังจากอัปเดต. pubxml เป็น "netcoreapp3.1" ก็ใช้งานได้ดี ขอบคุณ
demoncodemonkey

2

เปิดโฟลเดอร์โครงการ

  • นำทางไปยังโฟลเดอร์ Properties >> PublishProfiles
  • เปิดไฟล์ FolderProfile.pubxml จากนั้นเปลี่ยนรุ่น3.0เป็น3.1

    netcoreapp3.1

  • สุดท้ายให้สร้างแอปพลิเคชันของคุณอีกครั้งก่อนเผยแพร่


การโทรที่ดีในการให้คำแนะนำที่ชัดเจนสำหรับการแก้ไขpubxmlไฟล์ด้วยตนเองและโดยเฉพาะอย่างยิ่งการปรับเปลี่ยนค่าเหล่านี้ผ่านVisual Studio 2019 GUI ฉันได้รวมรายละเอียดเหล่านี้ไว้ในคำตอบดั้งเดิมของฉันดังนั้นตัวเลือกนี้จะได้รับการอธิบายอย่างชัดเจน ขอบคุณ!
Jeremy Caney

0

เปลี่ยนแปลง

<PackageReferenceInclude="Microsoft.AspNetCore"Version="2.2.0" />
 to 
<PackageReference Include="Microsoft.AspNetCore.Http.Abstractions" Version="2.2.0" />

ทำงานได้สำหรับฉัน


1
สำหรับASP.NET Core 3.1Microsoft.AspNetCoreไลบรารีทั้งหมดควรได้รับการอัปเดต3.1.0เป็นตามหมายเหตุรีลีส v3.1 ของ Microsoft วิธีการของคุณอาจเป็นการแก้ไขที่ถูกต้องสำหรับปัญหาที่คล้ายกันในASP.NET Core 2.2โดยสมมติว่าข้อผิดพลาดไม่ได้เกิดจากการไม่ตรงกันระหว่างไฟล์ของคุณcsprojกับpubxไฟล์เช่นเดียวกับในกรณีของฉัน
Jeremy Caney

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

1
@Libertad คุณต้องอัพเกรดการติดตั้ง visual Studio เป็นเวอร์ชัน 16.4.0 เพื่อดู dot dot net core 3.1 รุ่นล่าสุด
navule

@navule VS ของฉันอัพโทเดต แพ็คเกจ Aabove เป็นเพียงแพ็คเกจ nuget ดูที่นี่: nuget.org/packages/Microsoft.AspNetCore และดูรุ่นล่าสุด
Libertad
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.