Visual Studio 2019'dan bir ASP.NET Core 3.1 sitesini Azure'a yayımlama hatası


10

Başarıyla bir Azure Uygulama Hizmeti'ne ( modülü kullanarak ) dağıtılan önceden var olan bir ASP.NET Core 3.0 uygulaması var . Uygulamayı ASP.NET Core 3.1'e (bugünkü sürümüne) yükselttikten sonra , uygulama derler ve IIS Express'in yerel sürümünde düzgün çalışır . Ancak (bugünün sürümü) Visual Studio 16.4 kullanarak Azure Uygulama Hizmeti'nde yayımlamaya çalıştığımda , aşağıdaki hatayı alıyorum:AspNetCoreModuleV2

'C: \ Project \ obj \ project.assets.json' varlıklarının '.NETCoreApp, Sürüm = v3.0' için bir hedefi yok. Geri yüklemenin çalıştığından ve projeniz için TargetFrameworks uygulamasına 'netcoreapp3.0' eklediğinizden emin olun.

notlar

  • Tüm <PackageReference>'olarak s Microsoft.AspNetCore, Microsoft.EntityFrameworkCoreve Microsoft.Extensionsşekilde güncellenmiştir3.1.0
  • Çözümümü temizledim ve objkalıcı referans olmadığından emin olmak için klasörümü bile tıklattım .
  • Bu hata, 3.1.100sürümünden üretiliyor Microsoft.PackageDependencyResolution.targets.

Hala bir şey .NET Core 3.0 bağımlılıkları asılı olduğunu anladım . Ancak bunun neden yalnızca dağıtım sırasında sorunlara neden olduğu belli değil. Are Azure Uygulama Servis oluyor henüz hazır değil NET Çekirdek 3.1 ? Yoksa bağımlılık çözümleme hedefleriyle ilgili bir sorun mu var?


@Panagiotis Kanavos ile bunu etiketlediğiniz için teşekkür ederiz asp.net-core-3.1. Yeni bir etiket oluşturmak için gerekli itibarım yoktu.
Jeremy Caney

Açıkçası, bir sonraki adımım, yeni bir ASP.NET Core 3.1 proje şablonu ile başlamak, yeni bir Azure App hizmetine dağıtmaya çalışmak ve ardından sorunu yeniden üretene kadar bağımlılıkları yeniden oluşturmak olacaktır. Bu haftaya kadar bunu yapacak vaktim olmayacak. O zamana kadar, başka birinin bu tür bir hatayla ilgili bir fikir sahibi olabileceğini veya kendileri için bir çözüm bulabileceğini umuyordum.
Jeremy Caney

Dokümanlar , .NET Core SDK sürümünün nasıl açıkça seçileceğini gösterir . Bunu denedin mi? 3.1 SDK listede görünüyor mu?
Panagiotis Kanavos

@PanagiotisKanavos: Bu proje henüz Azure Pipelines kullanılarak yayınlanmadı . Yani bu, söz konusu mu var olduğunu hatırlat da bir <TargetFramework>ayar pubxmlsöz konusu profil Visual Studio ben aralıklı dayanıyor. Hata! Bunu hedefe netcoreapp3.1uyacak şekilde değiştirmek csproj, acil sorunu çözer. (Bu, Azure App Service'in kendisinin hedefi açmasıyla ilgili yeni bir sorun getiriyor , ancak bu, sağladığınız bağlantıya benzer şekilde bağımsız bir dağıtım kullanılarak çözülebilir.) Beni doğru yöne yönlendirdiğiniz için teşekkür ederiz!
Jeremy Caney

1
Bu soruyu (ve cevabı) bulduğunuz için şükürler olsun. Sadece bu gibi sorunlara girmeye devam etmek için kanama kenarı MS değişikliklerini (tavsiyeleri ve teşvikleriyle) benimsemekten oldukça sinirli olmaya başlıyorum.
Frank

Yanıtlar:


14

Anında ortaya çıkan sorun - orijinal soruda tanımlandığı gibi - belirlenen iki yer olmasıyla ilgilidir <TargetFramework>:

  1. Proje dosyası (örneğin csproj)
  2. Yayıncılık profili (yani pubxml)

Her iki konumda <TargetFramework>da güncellenmeli ve tam olarak eşleşmelidir . Aksi takdirde, yayıncılık kendi hedefleri bulmak mümkün olmayacaktır dayalı inşa edilir dosyada, içinde dosyanın.project.assets.json<TargetFramework>csjproj

Not:pubxml Dosyanın dosyadaki<TargetFramework>kümeyeertelenmesinibekleyebilirsinizcsproj, ancak durum böyle değildir .

Metin düzeltici

Bu değişikliği bir metin düzenleyici aracılığıyla yapmak için,

  1. ~/Properties/PublishProfilesKlasörü açın .
  2. *.pubxmlDüzenlemek istediğinizi açın .
  3. Değerini şu şekilde <TargetFramework>değiştirin netcoreapp3.1:
<TargetFramework>netcoreapp3.1</TargetFramework>

Visual Studio 2019

Bu değişikliği Visual Studio 2019 IDE aracılığıyla yapmak için ,

  1. Web Tek Tıklama Yayınlama araç çubuğundaki dişli simgesini tıklayın (yayınlama simgesinin sağındadır).
  2. Varsayarsak Hedef Çerçeve edilir değil ayarlı netcoreapp3.1, yanındaki simge düzenle seçeneğini tıklayın.
  3. Hedef Çerçevenin olarak ayarlandığından emin olun netcoreapp3.1.
  4. Click Kaydet .

Uyarı: IDE'yi kullanırken, burada bir sorunla karşılaşabilirsiniz. Profili düzenlerken muhtemelenproje dosyanızdaki yeni değeri (örnetcoreapp3.1.) Zaten seçmişsinizdir. Ancak Kaydet'i tıkladığınızda, orijinal değerinegeri döner(örneğin,netcoreapp3.0benim durumumda). Aslında vermedi Bunun nedeni değiştirmek için bir değişiklik olmadığı için arayüzde değerini, Visual Studio hataları altında yatan değerler. Geçici olarak başka bir değeri (örneğin, Yapılandırma ) değiştirirseniz, Visual Studio bir değişiklik olduğunu fark eder ve her iki değer de*.pubxmldosyadagüncelleştirilir.

Beni doğru yönde işaret ettiği için @PanagiotisKanavos'a tekrar teşekkür ederim (orijinal ipliğin yorumlarına bakın).


1
Çözüm gönderdiğiniz için teşekkürler! Dün gece yayınlamaya çalıştığımda bununla mücadele ediyordum ve bu hiç mantıklı değildi. Yayınlama sihirbazında her zaman hedef olarak 3.1 seçildi, bu yüzden tamam olduğunu düşündüm, ancak pubxaçıkladığınız gibi dosyayı açtığımda hala 3.0'daydı. Çok sinir bozucu. Dürüst olmak gerekirse, VS 16.3 ve .NET Core 3.0 piyasaya sürüldüğünden beri garip, karanlık ve tamamen durma hatalarını ve sorunlarını göstermekten başka bir şeyim yoktu. Tekrar teşekkürler!
Gup3rSuR4c

Bunu da alıyorsanız, ama çerçeveye bağımlı olarak yayınlamasını söylediğinizde, tüm çerçeveyi onunla birlikte yayınlamaya karar vermesi oldukça güzel. 1 dk ya da daha fazla olması gereken bir yayın şu an 15+ dakikadır ...
Gup3rSuR4c

FYI: Bunu ilk olarak gönderdiğimden beri, Microsoft Azure Uygulama Hizmetlerini .NET Core 3.1 için yerel destek sağlamak üzere güncelleştirdi . Bu nedenle, HTTP Error 500.30 - ANCM In-Process Start Failuremesajla ilgili uyarıyı orijinal mesajımdan kaldırdım . Daha önce bu, başvurunuzun tamamen bağımsız bir dağıtımının yayınlanmasını gerektiriyordu. (Bu, .NET Core'un yeni bir sürümü düşmesi ve Azure App Service ortamına entegre edilmesi arasında genellikle 2-3 günlük bir gecikme süresi olduğunu söyledi, bu nedenle gelecekteki güncellemelerin farkında olmak yararlıdır.)
Jeremy Caney

1
Güzel, sadece proje özelliklerinde çerçeve sürümünü güncellemiştim ve .pubxml dosyası hakkında aklımı bile geçmedim. Bu benim yayın asmak neden oldu .pubxml "netcoreapp3.1" güncelledikten sonra iyi çalıştı. Teşekkürler
demoncodemonkey
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.