112

Tôi đã nhân bản ASP.NET Core SignalR Repo cục bộ và thử mở giải pháp từ trong môi trường sau.

Ý tưởng

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

Tôi cuối cùng đã nhìn thấy rất nhiều các loại thông báo lỗi:

..\Repos\SignalR\src\Microsoft.AspNetCore.SignalR\Microsoft.AspNetCore.SignalR.csproj : error: Không gian tên XML mặc định của dự án phải là không gian tên XML MSBuild. Nếu dự án được tác giả ở định dạng MSBuild 2003, vui lòng thêm xmlns="http://schemas.microsoft.com/developer/msbuild/2003"vào phần tử. Nếu dự án đã được tác giả ở định dạng 1.0 hoặc 1.2 cũ, vui lòng chuyển đổi nó sang định dạng MSBuild 2003. ..\Repos\SignalR\src\Microsoft.AspNetCore.SignalR\Microsoft.AspNetCore.SignalR.csproj

Tôi muốn biết làm thế nào để sửa lỗi này một cách chính xác.

|
176

Các dự án bạn đang cố mở đều ở định dạng csNetj mới .Net Core. Điều này có nghĩa là bạn cần sử dụng Visual Studio 2017 hỗ trợ định dạng mới này.

Đối với một chút lịch sử, ban đầu .Net Core được sử dụng project.jsonthay vì *.csproj. Tuy nhiên, sau một số cân nhắc nội bộ đáng kể tại Microsoft, họ đã quyết định quay lại csprojnhưng với định dạng cập nhật và gọn gàng hơn nhiều. Tuy nhiên, định dạng mới này chỉ được hỗ trợ trong VS2017.

Nếu bạn muốn mở các dự án nhưng không muốn đợi đến ngày 7 tháng 3 để phát hành VS2017 chính thức, bạn có thể sử dụng Visual Studio Code để thay thế.

|
  • 1

    Tôi rất quen thuộc với lịch sử, tôi đoán tôi chỉ cho rằng điều này sẽ hoạt động. Lỗi không có vẻ như quá xa so với lĩnh vực có thể xảy ra. Bạn có chắc chắn rằng không có cách nào để làm điều này hoạt động với nỗ lực tối thiểu trong thời gian này, mà không có các bit RC của Visual Studio 2017 ?

    – Tạ Gia Cảnh 13:03:43 28/02/2017
  • 1

    Không phải với VS2015, không. Đó là lý do tại sao tôi cung cấp Mã VS thay thế. Ít nhất bạn chỉ có một tuần để chờ đợi VS2017 được phát hành :)

    – Lý Quang Trọng 13:07:28 28/02/2017
  • 1

    Đó là sự thật, cảm ơn! Tôi cần phiên bản nào của DOT NET CLI nếu tôi sử dụng VS Code ?

    – Vũ Thu Trang 13:08:19 28/02/2017
  • 1

    @ThePartyTurtle Để công bằng, điều đó sẽ yêu cầu VS2015 hiểu một định dạng tệp mà nó sẽ không bao giờ hỗ trợ.

    – Lý Mỹ Xuân 23:24:15 06/06/2017
29

Tôi gặp phải vấn đề này trong khi mở Service Fabric CatchStartedApplication trong Visual Studio 2015. Giải pháp ban đầu được xây dựng trên .NET Core trong VS 2017 và tôi đã gặp lỗi tương tự khi mở vào năm 2015.

Dưới đây là các bước tôi làm theo để giải quyết vấn đề.

  • Nhấp chuột phải vào dự án (tải thất bại) và chỉnh sửa trong studio hình ảnh.
  • Đã thấy dòng sau trong thẻ Project: <Project Sdk="Microsoft.NET.Sdk.Web" >

  • Làm theo hướng dẫn hiển thị trong thông báo lỗi để thêm xmlns="http://schemas.microsoft.com/developer/msbuild/2003"vào thẻ này

Bây giờ nó trông giống như:

<Project Sdk="Microsoft.NET.Sdk.Web" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  • Tải lại dự án đã cho tôi lỗi tiếp theo (lỗi của bạn có thể khác dựa trên những gì được bao gồm trong dự án của bạn)

  • Tôi thấy rằng phần tử Không có thuộc tính cập nhật như dưới đây:

    <None Update="wwwroot\**\*;Views\**\*;Areas\**\Views">
      <CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
    </None>
  • Nhận xét rằng ra như dưới đây.

    <!--<None Update="wwwroot\**\*;Views\**\*;Areas\**\Views">
      <CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
    </None>-->
  • Lỗi tiếp theo: Phiên bản trong Tham chiếu gói không được nhận dạng

  • Đã thấy Phiên bản đó có trong csproj xml như bên dưới (Các dòng GóiReference bổ sung được gỡ bỏ cho ngắn gọn)

  • Tước thuộc tính Phiên bản

    <PackageReference Include="Microsoft.AspNetCore.Diagnostics" />
    <PackageReference Include="Microsoft.AspNetCore.Mvc" />
  • Bây giờ tôi nhận được như sau:

Chơi lô tô! Studio trực quan nâng cấp một chiều bắt đầu! Hãy để VS làm điều kỳ diệu!

  • Dự án được tải nhưng có lỗi lib tham chiếu.

  • Đã sửa lỗi các lỗi lib tham chiếu riêng lẻ, bằng cách xóa và thay thế trong NuGet để dự án hoạt động!

Hy vọng điều này sẽ giúp một khách du lịch mã khác :-D

|
11

Câu trả lời của DavidG là đúng, nhưng tôi muốn nói thêm rằng nếu bạn đang xây dựng từ dòng lệnh, giải pháp tương đương là đảm bảo rằng bạn đang sử dụng phiên bản phù hợp của msbuild(trong trường hợp cụ thể này, nó cần phải là phiên bản 15).

Chạy msbuild /? để xem phiên bản nào bạn đang sử dụng hoặc where msbuildđể kiểm tra vị trí mà môi trường sẽ thực thi và cập nhật (hoặc trỏ đến đúng vị trí của) các công cụ nếu cần.

Tải về công cụ MSBuild mới nhất từ đây .

|
6

Nếu gặp lỗi này khi cố gắng xây dựng ứng dụng .Net Core 2.0 trên VSTS thì hãy đảm bảo định nghĩa bản dựng của bạn đang sử dụng Hosted VS2017hàng đợi Tác nhân.

|
  • 1

    Tôi gặp vấn đề tương tự với dự án VS Azure Chức năng nhắm mục tiêu khung .net nhưng vẫn tạo tệp csproj ở định dạng cốt lõi. Sửa chữa này làm việc cho tôi.

    – Lanh Con Gio 23:54:01 19/06/2018
1

Tôi đã nhận được những tin nhắn tương tự trong khi tôi chỉ chạy msbuild từ powershell.

dotnet msbuild "./project.csproj" đã làm cho tôi.

|

Câu trả lời của bạn (> 20 ký tự)

Bằng cách click "Đăng trả lời", bạn đồng ý với Điều khoản dịch vụ, Chính sách bảo mật and Chính sách cookie của chúng tôi.

Không tìm thấy câu trả lời bạn tìm kiếm? Duyệt qua các câu hỏi được gắn thẻ hoặc hỏi câu hỏi của bạn.