2016-07-06 43 views
5

Tôi có sử dụng .NET CLI nếu tôi muốn tạo ứng dụng ASP.NET Core 1.0 sử dụng .NET Framework không? .NET CLI chỉ dành cho thư viện .NET Core mới hoặc cả Core và .NET 4.6?.NET CLI chỉ dành cho .NET Core?

+1

Bạn đang đề cập đến [Cơ sở hạ tầng ngôn ngữ chung] (https://en.wikipedia.org/wiki/Common_Language_Infrastructure) hoặc [Giao diện dòng lệnh] (http://www.hanselman.com/blog/ExploringTheNewNETDotnetCommandLineInterfaceCLI.aspx)? (Họ * đã * biết rằng nó sẽ gây ra sự nhầm lẫn khi sử dụng CLI khi CLI đã là một từ viết tắt tốt.) –

+0

Giao diện dòng lệnh – Sam

+0

Cảm ơn bạn đã làm rõ - Tôi nghĩ rằng * có thể * bạn muốn tạo một ứng dụng tuân thủ CLI /thư viện. –

Trả lời

5

Tôi sử dụng CLI nếu tôi muốn tạo ra một ASP.NET Lõi 1.0 ứng dụng mà sử dụng .NET Framework?

Các NET CLI là cho cả hai, sự khác biệt là thực sự thực hiện trong các tập tin project.json. Ví dụ, bạn có thể sử dụng lệnh sau để biên dịch/xây dựng ASP.NET Lõi ứng dụng trong khi ứng dụng được thực sự nhắm vào toàn khuôn khổ:

dotnet build

Đây là những gì một ví dụ project.json sẽ trông như nhắm mục tiêu .NET 4.6.

{ 
    "frameworks": { 
    "net46": { } 
    } 
} 

Để biết thêm chi tiết, tôi luôn khuyến khích mọi người tham khảo documentation được tìm thấy tại đây. Tương tự như vậy, vì đây là open-source (điều này thật tuyệt vời), bạn có thể xem mã nguồn để hiểu nó được sử dụng như thế nào.

5

Bạn cũng có thể sử dụng dotnet cli cho các ứng dụng và thư viện khung đầy đủ. Bạn chỉ cần sử dụng thẻ khung thích hợp - ví dụ: "net46" để nhắm mục tiêu .NET 4.6. Bạn có thể nhắm mục tiêu nhiều khuôn khổ, quá:

Ví dụ, từ thư viện Noda Thời gian của tôi:

"frameworks": { 
    "net45": { 
    "frameworkAssemblies": { 
     "System.Xml": "", 
     "System.Numerics": "" 
    } 
    }, 
    "netstandard1.1": { 
    "buildOptions": { 
     "define": [ "PCL" ] 
    }, 
    "dependencies": { 
     "System.Diagnostics.Debug": "4.0.11", 
     "System.Globalization": "4.0.11", 
     "System.Linq": "4.1.0", 
     "System.Resources.ResourceManager": "4.0.1", 
     "System.Runtime.Extensions": "4.1.0", 
     "System.Runtime.Numerics": "4.0.1", 
     "System.Runtime.Serialization.Xml": "4.1.1", 
     "System.Threading": "4.0.11", 
     "System.Xml.XmlSerializer": "4.0.11" 
    } 
    } 
} 

Biểu tượng PCL tiền xử lý sẽ được đổi tên thành "DOTNET_CORE" hoặc tương tự tại một số điểm - đó là chỉ có bởi vì tôi có một bó mã sử dụng nó để biên dịch có điều kiện trở lại khi tôi sử dụng để nhắm mục tiêu các thư viện lớp di động.

Bạn vẫn có thể cũng nhắm mục tiêu thư viện lớp di động, bằng cách này ... do đó, một gói có thể nhắm mục tiêu nhiều phiên bản khác nhau.

3

CLI chỉ là công cụ. Ứng dụng của bạn sẽ sử dụng để chạy gì không được kết hợp với công cụ (ví dụ: miễn là công cụ có thể tạo ứng dụng chính xác cho khung đích của bạn, không quan trọng việc chạy công cụ như thế nào). Thay vào đó, trong tệp project.json của bạn, bạn chỉ định khung mục tiêu dưới dạng biệt danh khung hình mục tiêu (ví dụ: net451 cho .NET Framework 4.5.1 hoặc netcoreapp1.0 cho ứng dụng .NET Core, v.v.)

+0

Tôi có cần phải nhận riêng CLI hoặc sẽ nâng cấp lên Visual Studio 2015 Update 3 tự động cài đặt CLI cho tôi không? – Sam

+0

Bạn cần cài đặt công cụ web trên đầu Update3. Bạn có thể nhận được công cụ VS từ https://www.microsoft.com/net/download (Net Core Tooling Preview 2 cho Visual Studio 2015) – Pawel

+0

@Sam, đây là một phần của hướng dẫn được tìm thấy ở đây ... https://www.microsoft.com/net/core#windows –