在macOS上编译/运行单个C#文件

Dee*_*eBo 2 c# macos csc .net-core

我可以通过VS for Mac开发基于.NET Core的C#应用​​程序,现在我已经创建了一个“编译器”,可以为我创建的语言生成C#。我至少要运行输出(一个名为Program.cs的文件)​​,并希望将其编译为macOS上的可执行文件。

在Windows上,可以使用以下方法完成此操作:

csc /optimize /t:exe /out:Program.exe Program.cs
Run Code Online (Sandbox Code Playgroud)

奇怪的是,这个确切的命令在macOS上也同样起作用,并生成Windows可执行文件。我想要的是Mac可执行文件的等效功能。但是,csc文档指出,唯一的编译器目标是“库”,“模块”和Windows应用程序。

为了澄清起见,我不想在运行时运行代码,而是从运行时生成的代码(作为字符串)构建可执行文件。

Rei*_*ica 6

csc仅在作为构建过程的一部分完成时,或在支持执行.Net Framework(或.Net Standard)程序集的平台上运行时(即当前为Windows),才直接运行才有意义。码。

您需要dotnet new console创建项目,将其放入Program.cs项目文件夹,然后dotnet build生成可执行文件(在下载必要的nuget依赖项等之后)。要共享可执行文件,请使用dotnet publish -c <configuration> -r <runtime> --self-contained true(例如,<configuratio>being Release<runtime>being osx-x64)。

这项技术称为.Net Native,它很棒。