Projenin varsayılan XML ad alanı MSBuild XML ad alanı olmalıdır


150

Ben klonlanmış ASP.NET Çekirdek SignalR Repo yerel ve aşağıdaki ortamından çözümü açmayı deneyin.

IDE

Microsoft Visual Studio Enterprise 2015
Version 14.0.25431.01 Update 3
Microsoft .NET Framework
Version 4.6.01055

DOT NET CLI

λ dotnet --info
.NET Command Line Tools (1.0.0-preview2-1-003177)

Product Information:
 Version:            1.0.0-preview2-1-003177
 Commit SHA-1 hash:  a2df9c2576

Runtime Environment:
 OS Name:     Windows
 OS Version:  6.1.7601
 OS Platform: Windows
 RID:         win7-x64

Bu tür hata mesajları bir sürü görüyorum:

..\Repos\SignalR\src\Microsoft.AspNetCore.SignalR\Microsoft.AspNetCore.SignalR.csproj : error: Projenin varsayılan XML ad alanı MSBuild XML ad alanı olmalıdır. Proje MSBuild 2003 biçiminde yazılmışsa, lütfen xmlns="http://schemas.microsoft.com/developer/msbuild/2003"öğeye ekleyin . Proje eski 1.0 veya 1.2 biçiminde yazılmışsa, lütfen MSBuild 2003 biçimine dönüştürün. ..\Repos\SignalR\src\Microsoft.AspNetCore.SignalR\Microsoft.AspNetCore.SignalR.csproj

Bunu nasıl düzeltebileceğimi bilmek istiyorum.


Sadece yapabileceğimi varsaydım, bu yapmamam gereken bir varsayım mı? Umarım bu geriye dönük olarak uyumludur.
David Pine

1
VS2017 RTM'nin proje formatını güncellemesine izin verdikten sonra bu hatayı alıyorum :-(
Simon_Weaver

burada benzer bir hata gönderdi .. stackoverflow.com/questions/58336983/… , ancak benim durumumda yeni bir projeyle başlıyorum, mevcut bir açmaya çalışmıyorum.
joedotnot

Yanıtlar:


212

Açmaya çalıştığınız projeler yeni .NET Core csproj biçimindedir. Bu, bu yeni biçimi destekleyen Visual Studio 2017'yi kullanmanız gerektiği anlamına gelir.

Tarihin biraz için, başlangıçta .NET Çekirdek kullanılan project.jsonyerine *.csproj. Bununla birlikte, Microsoft'ta bazı önemli iç müzakerelerden sonra, csprojdaha temiz ve güncel bir formatla geri dönmeye karar verdiler . Ancak, bu yeni biçim yalnızca VS2017'de desteklenir.

Eğer projeleri açmak istiyorum ama 7 Mart kadar beklemek istemiyorsanız th resmi VS2017 serbest bırakılması için, bunun yerine Visual Studio kod kullanabilirsiniz.


Tarihe çok aşinayım, sanırım bunun işe yarayacağını varsaydım. Hata, olası alandan çok uzak gibi görünmüyor. Visual Studio 2017 RC bitleri olmadan bunun minimum çaba ile çalışmasını sağlamanın bir yolu olmadığından emin misiniz ?
David Pine

VS2015 ile değil, hayır. Bu yüzden alternatif olarak VS Code'u teklif ettim. En azından VS2017'nin çıkmasını beklemek için sadece bir haftan var :)
DavidG

Bu doğru, teşekkürler! VS Kodu kullanacaksam , DOT NET CLI'nın hangi sürümüne ihtiyacım var ?
David Pine

2
@ThePartyTurtle Adil olmak gerekirse, VS2015'ten asla desteklemeyeceği bir dosya biçimini anlamasını ister.
DavidG

44

Visual Studio 2015'te Service Fabric GettingStartedApplication'ı açarken bu sorunla karşılaştım . Orijinal çözüm VS 2017'de .NET Core üzerine inşa edildi ve 2015'te açarken aynı hatayı aldım.

Sorunu çözmek için izlediğim adımlar şunlardır.

  • (Failed load) projesine sağ tıklayın ve visual studio'da düzenleyin.
  • Proje etiketinde aşağıdaki satırı gördüm: <Project Sdk="Microsoft.NET.Sdk.Web" >

  • xmlns="http://schemas.microsoft.com/developer/msbuild/2003"Bu etikete eklemek için hata mesajında ​​gösterilen talimatları takip edin

Şimdi şöyle görünmelidir:

<Project Sdk="Microsoft.NET.Sdk.Web" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  • Projeyi yeniden yüklemek bana bir sonraki hatayı verdi (projenizde bulunanlara bağlı olarak sizinki farklı olabilir)

"Güncelleme" öğesi <Hiçbiri> tanınmıyor

  • None öğesinin aşağıdaki gibi bir güncelleme özelliğine sahip olduğunu gördüm:

    <None Update="wwwroot\**\*;Views\**\*;Areas\**\Views">
      <CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
    </None>
  • Bunu aşağıdaki gibi yorumladı.

    <!--<None Update="wwwroot\**\*;Views\**\*;Areas\**\Views">
      <CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
    </None>-->
  • Sonraki hataya: Paket Başvurusu'ndaki sürüm tanınmıyor <PackageReference> öğesindeki sürüm tanınmıyor

  • Sürümün aşağıdaki gibi csproj xml'de olduğunu gördüm (kısalık için ek PackageReference satırları kaldırıldı)

  • Sürüm özniteliği kaldırıldı

    <PackageReference Include="Microsoft.AspNetCore.Diagnostics" />
    <PackageReference Include="Microsoft.AspNetCore.Mvc" />
  • Şimdi aşağıdakileri alıyorum: VS Otomatik Yükseltme

Bingo! Visual Studio One-way yükseltme devreye girdi! VS sihri yapalım!

  • Proje yüklendi, ancak başvuru lib hataları vardı. resim açıklamasını buraya girin

  • NuGet'te projeyi çalıştırmak için kaldırarak ve değiştirerek referans lib hataları tek tek düzeltildi!

Umarım bu başka bir kod gezginine yardımcı olur:


3
@DavidG Tüm projelerin VS2015 şubesi olmadığı için zaman kaybı değildir.
usr-bin-içki

Projenin klasörlerini tekrar görebilmek için Çözüm Gezgini araç çubuğunda "Tüm Dosyaları Göster" i tıklatmanız gerektiğini eklemeniz gerekir. "Noktalı" olarak görünürler ve her birini sağ tıklayıp seçip "Yeniden Projeye Dahil Et" i seçmeniz gerekir.
vapcguy

Bunlar tam olarak karşılaştığım sorunlardı .. adım adım onları takip etti ... Teşekkürler!
Samra

14

@ DavidG'nin cevabı doğrudur, ancak komut satırından oluşturuyorsanız, eşdeğer çözümün uygun sürümünü kullandığınızdan emin olmaktır msbuild(bu özel durumda, sürüm olması gerekir) 15).

Run msbuild /?kullandığınız ya versiyonu görmek için where msbuildgerekirse ortamı (sağ konuma veya noktaya) ve güncelleme yürütülebilir aldığı konum araçlarını kontrol etmek.

En son MSBuild aracını buradan indirin .


6

VSTS üzerinde .Net Core 2.0 uygulaması oluşturmaya çalışırken bu hatayı alıyorsanız, derleme tanımınızın Hosted VS2017Agent kuyruğunu kullandığından emin olun .


.Net çerçevesini hedefleyen ama yine de çekirdek biçiminde csproj dosyasını üreten bir VS Azure İşlevleri projesinde benzer bir sorun yaşadım. Bu düzeltme benim için çalıştı.
ElliotSchmelliot

3

Powershell'den sadece msbuild çalıştırırken aynı mesajları alıyordum.

dotnet msbuild "./project.csproj" benim için çalıştı.


Bu temelde aynı cevaptır bu bir . En son msbuild sürümünü kullanmanız gerekir.
DavidG

0

proje büyük değilse,

1- Klasör projesinin adını değiştirme

2- Aynı projeyle yeni bir proje yapın (yeniden adlandırmadan önce)

3- eski projeden mevcut dosyaları yeni projeye ekleyin (tamamen aynı, aynı klasörler, aynı isimler, ...)

4- Yeni proje dosyasını (xml olarak) ve eski projeyi açın

5- yeni proje dosyasını (xml içeriği) kopyalayın ve eski proje dosyasına yapıştırın

6- Eski Projeyi Silin

7- eski klasör projesini eski isimle yeniden adlandırın

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.