Cách chạy ứng dụng bảng điều khiển .NET Core từ dòng lệnh


Câu trả lời:


273

Nếu đó là một ứng dụng phụ thuộc vào khung (mặc định), bạn sẽ chạy nó bằng dotnet yourapp.dll.

Nếu đó là một ứng dụng độc lập, bạn chạy nó bằng yourapp.exeWindows và ./yourapptrên Unix.

Để biết thêm thông tin về sự khác biệt giữa hai loại ứng dụng, hãy xem bài viết Triển khai ứng dụng .NET Core trên .Net Docs.


22
Thật ngạc nhiên khi tôi mất bao lâu để tìm ra điều này. Tôi đang thử tất cả các loại lệnh "dotnet run", v.v ... Đây là nơi đầu tiên tôi bắt gặp trong rất nhiều tìm kiếm cung cấp cách sử dụng dotnet chính xác để chạy ứng dụng console. Tại sao Microsoft làm cho .NET Core trở nên thân thiện với nhà phát triển?
Glen Thomas

2
@GlenThomas Nếu bạn muốn chạy một ứng dụng bạn đang phát triển, bạn sử dụng dotnet run. Ngoài ra, bạn đã tìm ở đâu? Bạn sẽ mong đợi thông tin này ở đâu?
svick

1
"dotnet run" dường như không còn là trường hợp của các dự án lõi .NET sử dụng thiết lập MSproild csproj mới hơn là các tệp project.json cũ.
Glen Thomas

1
@GlenThomas Điều đó không đúng, dotnet runhoạt động tương tự cho các dự án csproj mới giống như đã làm cho project.json.
Svick

5
@GlenThomas, không chắc đây có phải là sự cố bạn gặp phải không, nhưng khi bạn cố gắng sử dụng dotnet run, hãy đảm bảo bạn đang ở trong thư mục dự án chứ không phải thư mục giải pháp.
Ryan Lundy

46

Bạn có thể rất dễ dàng tạo EXE (cho Windows) mà không cần sử dụng bất kỳ lệnh xây dựng khó hiểu nào. Bạn có thể làm điều đó ngay trong Visual Studio.

  1. Nhấp chuột phải vào Dự án Ứng dụng Console và chọn Xuất bản .
  2. Một trang mới sẽ mở ra (ảnh chụp màn hình bên dưới)
  3. Nhấn Cấu hình ...
  4. Sau đó thay đổi Chế độ triển khai thành Phụ thuộc khép kín hoặc Khung . .NET Core 3.0 giới thiệu một triển khai tệp duy nhất có thể thực hiện được.
  5. Sử dụng "phụ thuộc khung" nếu bạn biết máy đích có thời gian chạy .NET Core vì nó sẽ tạo ra ít tệp hơn để cài đặt.
  6. Nếu bây giờ bạn xem thư mục bin trong explorer, bạn sẽ tìm thấy tệp .exe.
  7. Bạn sẽ phải triển khai exe cùng với bất kỳ tập tin cấu hình và dll hỗ trợ nào.

Bảng điều khiển ứng dụng xuất bản


5
Vâng. Có EXE - cùng với 217 tệp khác (api-ms-win-core-nampipe-l1-1-0.dll, v.v.). Có cách nào để gói cái này xuống một EXE không?
Elton

1
Câu hỏi hay @Elton. Tôi không biết. AFAIK bạn phải triển khai tất cả các dll.
Jess

2
Tôi nghĩ rằng thực tế là nó được cấu hình để khép kín sẽ yêu cầu tất cả các DLL đó ở đó. Nếu bạn không muốn chúng ở đó, chế độ triển khai có thể cần phải là Người phụ thuộc khung
kippermand

1
Bạn đã làm thứ Sáu của tôi!
Robin Johnson

20

Bạn cũng có thể chạy ứng dụng của mình như mọi ứng dụng console khác nhưng chỉ sau khi xuất bản.

Giả sử bạn có ứng dụng bảng điều khiển đơn giản có tên MyTestConsoleApp. Mở bảng điều khiển trình quản lý gói và chạy lệnh sau:

dotnet publish -c Debug -r win10-x64 

Cờ -c có nghĩa là bạn muốn sử dụng cấu hình gỡ lỗi (trong trường hợp khác bạn nên sử dụng Giá trị phát hành) - cờ r có nghĩa là ứng dụng của bạn sẽ được chạy trên nền tảng Windows với kiến ​​trúc x64.

Khi thủ tục xuất bản kết thúc, bạn sẽ thấy tệp * .exe nằm trong thư mục bin / Debug / Publish của bạn.

Bây giờ bạn có thể gọi nó thông qua các công cụ dòng lệnh. Vì vậy, hãy mở cửa sổ CMD (hoặc thiết bị đầu cuối) di chuyển đến thư mục chứa tệp * .exe của bạn và viết lệnh tiếp theo:

>> MyTestConsoleApp.exe argument-list

Ví dụ:

>> MyTestConsoleApp.exe --input some_text -r true

2

Với dotnetcore3.0, bạn có thể đóng gói toàn bộ giải pháp thành một tệp thực thi bằng cách sử dụng thuộc PublishSingleFiletính

-p:PublishSingleFile=True

Nguồn thực thi tập tin đơn

Một ví dụ về Self Contained, Releasethực thi OSX:

dotnet publish -c Release -r osx-x64 -p:PublishSingleFile=True --self-contained True

Một ví dụ về Self Contained, DebugLinux 64bit thực thi:

dotnet publish -c Debug -r linux-x64 -p:PublishSingleFile=True --self-contained True

Bản dựng Linux không phụ thuộc vào phân phối và tôi đã thấy chúng hoạt động trên Ubuntu 18.10, CentOS 7.7 và Amazon Linux 2.

Một bản thực thi Tự chứa bao gồm Dotnet Runtime và Runtime không cần phải được cài đặt trên máy đích. Các tệp thực thi được xuất bản được lưu trong:

<ProjectDir>/bin/<Release or Debug>/netcoreapp3.0/<target-os>/publish/ trên Linux, OSX và

<ProjectDir>\bin\<Release or Debug>\netcoreapp3.0\<target-os>\publish\ trên Windows.


Bạn cũng có thể thêm cấu hình vào tệp csproj:<PublishSingleFile>true</PublishSingleFile>
Mahdi Ataollahi

0

Sử dụng CMD, bạn có thể chạy dự án lõi .net nếu SDK lõi .net được cài đặt trong máy của bạn:

Để chạy dự án bàn điều khiển bằng cách sử dụng lệnh Windows, chọn đường dẫn cụ thể từ thư mục của bạn và gõ lệnh dưới đây

chạy dotnet


0

trước khi bạn chạy trong dấu nhắc cmd, hãy đảm bảo "appsinstall.json" có cùng các giá trị như "appsinstall.Development.json".

Trong dấu nhắc lệnh, đi đến thư mục bin / debug / netcorzon2.0. sau đó chạy "dotnet applicationname.dll"

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.