it-swarm.asia

يجب أن تكون مساحة اسم XML الافتراضية للمشروع هي مساحة أسماء XML MSBuild

قمت باستنساخ ASP.NET Core SignalR Repo محليًا ، وحاول فتح الحل من داخل البيئة التالية.

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

انتهيت إلى رؤية الكثير من هذه الأنواع من رسائل الخطأ:

..\Repos\SignalR\src\Microsoft.AspNetCore.SignalR\Microsoft.AspNetCore.SignalR.csproj: error: يجب أن تكون مساحة اسم XML الافتراضية للمشروع هي مساحة أسماء XML MSBuild. إذا تم تأليف المشروع بتنسيق MSBuild 2003 ، فيرجى إضافة xmlns="http://schemas.Microsoft.com/developer/msbuild/2003" إلى العنصر. إذا تم تأليف المشروع بتنسيق 1.0 أو 1.2 القديم ، فيرجى تحويله إلى تنسيق MSBuild 2003. ..\Repos\SignalR\src\Microsoft.AspNetCore.SignalR\Microsoft.AspNetCore.SignalR.csproj

أريد أن أعرف كيفية إصلاح هذا بالطريقة الصحيحة.

115
David Pine

المشاريع التي تحاول فتحها بتنسيق .Net Core csproj الجديد. هذا يعني أنك بحاجة إلى استخدام Visual Studio 2017 الذي يدعم هذا التنسيق الجديد.

لقليل من التاريخ ، استخدم .Net Core في البداية project.json بدلاً من *.csproj. ومع ذلك ، بعد بعض المداولات الداخلية الكبيرة في Microsoft ، قرروا العودة إلى csproj ولكن بتنسيق أنظف ومحدث كثيرًا. ومع ذلك ، يتم دعم هذا التنسيق الجديد فقط في VS2017.

إذا كنت ترغب في فتح المشاريع ولكنك لا ترغب في الانتظار حتى 7 مارس لإصدار VS2017 الرسمي ، فيمكنك استخدام Visual Studio Code بدلاً من ذلك.

180
DavidG

واجهت هذه المشكلة أثناء فتح خدمة نسيج GettingStartedApplication في Visual Studio 2015. تم بناء الحل الأصلي على .NET Core في VS 2017 وحصلت على الخطأ نفسه عند فتحه في عام 2015.

فيما يلي الخطوات التي اتبعتها لحل المشكلة.

  • انقر بزر الماوس الأيمن على (تحميل فشل) المشروع وتحريرها في الاستوديو المرئي.
  • شاهد السطر التالي في علامة المشروع: <Project Sdk="Microsoft.NET.Sdk.Web" >

  • اتبع التعليمات الموضحة في رسالة الخطأ لإضافة xmlns="http://schemas.Microsoft.com/developer/msbuild/2003" إلى هذه العلامة

يجب أن تبدو الآن مثل:

<Project Sdk="Microsoft.NET.Sdk.Web" xmlns="http://schemas.Microsoft.com/developer/msbuild/2003">
  • إعادة تحميل المشروع أعطاني الخطأ التالي (قد يكون خطأك مختلفًا استنادًا إلى ما هو مدرج في مشروعك)

 "Update" element <None> is unrecognized

  • رأيت أن عنصر بلا يحتوي على سمة تحديث على النحو التالي:

    <None Update="wwwroot\**\*;Views\**\*;Areas\**\Views">
      <CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
    </None>
    
  • وعلق ذلك على النحو التالي.

    <!--<None Update="wwwroot\**\*;Views\**\*;Areas\**\Views">
      <CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
    </None>-->
    
  • في الخطأ التالي: لم يتم التعرف على الإصدار الموجود في حزمة المرجع  Version in element <PackageReference> is unrecognized

  • رأيت أن الإصدار موجود في csproj xml على النحو التالي (تمت إزالة خطوط PackageReference الإضافية للإيجاز)

  • جردت السمة الإصدار

    <PackageReference Include="Microsoft.AspNetCore.Diagnostics" />
    <PackageReference Include="Microsoft.AspNetCore.Mvc" />
    
  • أحصل الآن على ما يلي:  VS Auto Upgrade

البنغو! بدأت الترقية في اتجاه واحد في Visual Studio! دع VS تفعل السحر!

  • تم تحميل المشروع ولكن مع أخطاء lib المرجعية.  enter image description here

  • إصلاح أخطاء lib المرجعية بشكل فردي ، عن طريق إزالة واستبدال في NuGet للحصول على عمل المشروع!

نأمل أن يكون هذا يساعد رمز مسافر آخر :-D

29
Jersey_Guy

إجابة DavidG صحيحة ، لكن أود أن أضيف أنه إذا كنت تقوم بالبناء من سطر الأوامر ، فإن الحل المعادل هو التأكد من أنك تستخدم الإصدار المناسب من msbuild (في هذه الحالة بالذات ، يجب أن تكون الإصدار 15).

قم بتشغيل msbuild /? لمعرفة الإصدار الذي تستخدمه أو where msbuild للتحقق من الموقع الذي تأخذ فيه البيئة الملف القابل للتنفيذ وتحديث (أو الإشارة إلى الموقع الصحيح) الأدوات إذا لزم الأمر.

قم بتنزيل أحدث أداة MSBuild من هنا .

11
Nikita G.

إذا حصلت على هذا الخطأ أثناء محاولة إنشاء تطبيق .Net Core 2.0 على VSTS ، فتأكد من أن تعريف البنية الخاص بك يستخدم قائمة انتظار Hosted VS2017 Agent.

6
Scotty.NET

كنت أتلقى نفس الرسائل بينما كنت أجري فقط msbuild من بوويرشيل.

dotnet msbuild "./project.csproj" عملت لي.

1
you_rule