【问题标题】:Compile/Run single C# file on macOS在 macOS 上编译/运行单个 C# 文件
【发布时间】:2019-09-05 13:24:19
【问题描述】:

我能够通过 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 应用程序。

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

【问题讨论】:

标签: c# macos .net-core csc


【解决方案1】:

直接运行 csc 仅在作为构建过程的一部分完成,或者在支持执行 .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,非常棒。

【讨论】:

    【解决方案2】:

    如果您在 OSX 上,您可以使用终端生成 exe/compile (c#)。你可以关注this post

    需要:

    • Visual Studio for Mac
    • .cs 文件
    • 终端几行

    【讨论】:

    • 这篇文章似乎是关于在 Mac 上生成 Windows 可执行文件。我的问题是关于生成 Mac 可执行文件。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-10
    • 2021-03-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多