.NET Core - เมื่อใดควรใช้“ dotnet new sln”


87

ฉันสับสนเล็กน้อย - บทแนะนำ. NET Core ส่วนใหญ่ที่ฉันอ่านไม่ได้กล่าวถึง "dotnet new sln" - พวกเขามักจะสร้างโครงการแยกกันโดยไม่มีไฟล์โซลูชันใด ๆ เพื่อเชื่อมโยงเข้าด้วยกัน

  1. "dotnet new sln" เป็นคำสั่งใหม่หรือไม่

  2. ฉันควรใช้สิ่งนี้เมื่อใด ฉันจะได้ประโยชน์อะไรจากการสร้างไฟล์. sln แทนที่จะมีแค่ไฟล์โครงการ ส่วนใหญ่เปิดใน Visual Studio หรือไม่? ฉันใช้ Visual Studio Code สำหรับ Mac ดังนั้นจึงอาจใช้ไม่ได้

ฉันใช้ googled "dotnet new sln" แล้วผลลัพธ์ก็น้อยมาก


คุณใช้เวอร์ชันใดdotnetจากบรรทัดคำสั่ง นั่นคือคุณเห็นอะไรเมื่อคุณเขียนdotnet --version?
Shaun Luttin

สวัสดี @ShaunLuttin ฉันเพิ่งอัปเกรดเมื่อสองสามวันก่อน ... 1.0.1
AndyNZ

คำตอบ:


148

"dotnet new sln" เป็นคำสั่งใหม่หรือไม่

ใช่. ในเวอร์ชัน 1.0.1 ของอินเทอร์เฟซบรรทัดคำสั่ง dotnet มีdotnet new slnคำสั่ง คำสั่งที่มาพร้อมกับการเปลี่ยนแปลงจาก project.json เพื่อ csproj หากเราเรียกใช้dotnet new --helpเราจะเห็น "ไฟล์โซลูชัน" เป็นหนึ่งในเทมเพลต

> dotnet new --help

Templates                 Short Name      Language      Tags
----------------------------------------------------------------------
Console Application       console         [C#], F#      Common/Console
Class library             classlib        [C#], F#      Common/Library
Unit Test Project         mstest          [C#], F#      Test/MSTest
xUnit Test Project        xunit           [C#], F#      Test/xUnit
ASP.NET Core Empty        web             [C#]          Web/Empty
ASP.NET Core Web App      mvc             [C#], F#      Web/MVC
ASP.NET Core Web API      webapi          [C#]          Web/WebAPI
Solution File             sln                           Solution

ฉันควรใช้สิ่งนี้เมื่อใด

สองครั้งในการใช้ไฟล์โซลูชันคือ:

  1. เมื่อเราต้องการใช้ Visual Studio และ / หรือ
  2. เมื่อเราต้องการจัดการหลายโครงการเป็นหน่วยเดียว

ฉันจะได้ประโยชน์อะไรจากการสร้างไฟล์. sln แทนที่จะมีแค่ไฟล์โครงการ ส่วนใหญ่เปิดใน Visual Studio หรือไม่? ฉันใช้ Visual Studio Code สำหรับ Mac ดังนั้นจึงอาจใช้ไม่ได้

ประโยชน์อย่างหนึ่งที่ไม่ต้องใช้ Visual Studio คือการจัดการหลายโครงการเป็นหน่วยเดียว

ตัวอย่างเช่นบน Mac ที่มี Visual Studio Code เราสามารถใช้dotnetCLI เพื่อสร้างโซลูชันใหม่สร้างโครงการสองสามโครงการเพิ่มโครงการเหล่านั้นลงในโซลูชันคืนค่าโซลูชันและสร้างโซลูชัน

dotnet new sln --name FooBar
dotnet new console --name Foo --output Foo
dotnet new console --name Bar --output Bar
dotnet sln add .\Foo\Foo.csproj
dotnet sln add .\Bar\Bar.csproj
dotnet restore
dotnet build FooBar.sln

คำสั่งสุดท้ายซึ่งเรียกใช้dotnet buildมีประโยชน์ในการสร้างโปรเจ็กต์ทั้งหมดที่อยู่ในโซลูชัน หากไม่มีทางแก้ไขเราจำเป็นต้องเรียกร้องให้dotnet buildแต่ละโครงการ

ไม่ต้องสงสัยเลยว่าประโยชน์อื่น ๆ ที่ไม่จำเป็นต้องใช้ Visual Studio ฉันปล่อยให้คุณค้นพบ


คุณจะแนะนำให้ใช้โซลูชันสำหรับโครงการไลบรารีคลาสและโครงการทดสอบที่เกี่ยวข้องหรือไม่
Horia Coman

@HoriaComan ดูเหมือนจะสมเหตุสมผลที่จะใช้วิธีแก้ปัญหาสำหรับสิ่งนั้นใช่
Shaun Luttin

ใช้dotnet run -p Foo\Foo.csprojสำหรับโครงการ mvc ได้ไหม ดูเหมือนจะใช้ได้ผลก็ต่อเมื่อฉันทำcd Foo && dotnet run
Vincent De Smet

@VincentDeSmet dotnet run -p .\Foo\Foo.csprojทำงานให้ฉัน
Shaun Luttin

มันบ่นว่าไม่มี config.Development.json ซึ่งอยู่ในโฟลเดอร์ย่อยสำหรับฉัน
Vincent De Smet
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.