Dot-Net
如何在 Linux 中從 .NET Core 2.0 創建可執行控制台應用程序?
據我在<https://www.microsoft.com/net/learn/get-started/macos>中了解,我們只能執行它:
$ dotnet run我需要創建一個我們從終端執行的控制台應用程序,如下所示:
$ ./my_console_app file_inputs.txt如何創建可以在這樣的終端中執行的執行檔?
為了在 Linux 中創建獨立的控制台應用程序,您應該為您的 dotnet 核心應用程序使用自包含部署 (SCD) 發布模式:
- <https://docs.microsoft.com/en-us/dotnet/core/deploying/index#self-contained-deployments-scd>
這將生成一個捆綁目標框架的單個二進製文件,並且可以獨立執行,無需任何額外的 shell 腳本或預安裝的 dotnet 執行時。
我建議使用官方的 dotnet cli
console模板,然後--self-contained通過指定您的目標執行時(例如:)linux-x64和您使用的框架將您的項目發佈為開關。所以從基本
console模板開始:dotnet new console -o myconsoleapp cd myconsoleapp編輯
program.cs以根據您的業務邏輯處理您的輸入文件或其他參數,例如:nano program.cs並添加以下內容:using System; namespace myconsoleapp { class Program { static void Main(string[] args) { Console.WriteLine("Hello Linux!"); if (args.Length > 0) { Console.WriteLine("Input is: " + args[0]); } } } }測試您的應用程序,
dotnet run file_inputs.txt它應該正確列印到控制台。為了分發二進製文件和捆綁的框架,您應該執行
dotnet publish:dotnet publish -c release --self-contained --runtime linux-x64 --framework netcoreapp2.0然後,您可以通過以下方式分發您
publish folder的應用程序,然後執行您的應用程序:./myconsoleapp file_inputs.txt這是關於在 dotnet core 中創建獨立 Linux 控制台應用程序的更詳細的文章:
- <https://blogs.msdn.microsoft.com/luisdem/2016/10/11/net-core-how-to-publish-a-self-contained-application-exe/>
也可以在這裡閱讀更多關於
publish頁面上其他可用 Linux 模板的資訊:
- <https://docs.microsoft.com/en-us/dotnet/core/tools/dotnet-publish?tabs=netcore2x>