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

标签 c# macos .net-core csc

我能够通过 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/

相关文章:

java - 尝试运行 Android SDK 时出现 Mac Java 路径问题

linux - Windows 使用 Kerberos 作为默认身份验证机制。 Unix/Linux 和 Mac 的默认身份验证机制是哪一种?

git - 发现可疑 https ://github. com/Homebrew/brew git origin remote

c# - BeginInvoke 内存泄漏

c# - 如何在网站中显示文本(Html 格式)(Asp.net C#)

c# - 以下代码/设计是否存在并发问题

c# - 具有基本类型的 ObservableCollection<T> 的自定义排序

docker - 在ubuntu上构建dotnet core 3.0依赖时资源暂时不可用

c# - 如何从 .Net Core 中的单独类库获取经过身份验证的用户

c# - Nunit 测试命名约定示例