我能够通过 VS for Mac 开发基于 .NET Core 的 C# 应用程序,现在我已经创建了一个“编译器”,它可以为我创建的语言生成 C#。我想至少运行输出(一个名为 Program.cs 的文件)并希望将其编译为 macOS 上的可执行文件。
在 Windows 上,这可以通过以下方式完成:
csc /optimize /t:exe /out:Program.exe Program.cs
奇怪的是,这个确切的命令在 macOS 上也同样有效,并生成一个 Windows 可执行文件。我想要的是 mac 可执行文件的等效项。然而,csc documentation声明唯一的编译器目标是“库”、“模块”和 Windows 应用程序。
澄清一下,我不想在运行时运行代码,而是从运行时生成的代码(作为字符串)构建可执行文件。
最佳答案
正在运行 csc
directly 只有在作为构建过程的一部分完成时才有意义,或者在支持执行 .Net Framework(或 .Net Standard)程序集的平台上运行时才有意义 - 即目前的 Windows,然后仅适用于琐碎的无依赖代码.
你需要的是dotnet new console
要创建项目,请输入您的 Program.cs
在项目文件夹中,然后是 dotnet build
将生成可执行文件(在下载必要的 nuget 依赖项等之后)。要共享可执行文件,请使用 dotnet publish -c <configuration> -r <runtime> --self-contained true
(例如 <configuratio>
是 Release
和 <runtime>
是 osx-x64
)。
这项技术称为 .Net Native,它很棒。
关于c# - 在 macOS 上编译/运行单个 C# 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57806529/