如何在 .Net 中为特定平台构建可执行文件?

How to build executables for specific platforms in .Net?

我的问题是标题中的内容。我想将我的 C# 应用程序构建为 Windows、Linux 和 MacOS 的可执行文件,这样我就可以将它们放在我的 github 存储库中的一个版本中。我怎么做?也许一次性创建一个 makefile 或类似的东西会很方便?

如果您使用的是 .NET Core 3.x 或更高版本,您可以使用 dotnet publishproduce stand-alone executables 的各种选项:

dotnet publish -c Release -r linux-x64 -p:PublishSingleFile=true

您将需要为您要定位的每个平台(Windows、macOS、Linux)重新运行此命令:

dotnet publish -c Release -r win-x64 -p:PublishSingleFile=true
dotnet publish -c Release -r osx-x64 -p:PublishSingleFile=true

-p:PublishSingleFile=true 生成一个您可以复制的可执行文件和 运行。您可以在 GitHub.

上将其作为工件附加到版本中

(旁白:此可执行文件会自动将自身解压缩到几十个文件中,然后 运行 那个版本。这意味着您将无法 运行 它,例如,在系统上没有可以写入的磁盘。)

是的,您绝对可以将其包装在 Makefile 之类的东西中。这是我使用的 cli 工具的示例:

publish:
    dotnet publish \
    -c $(CONFIGURATION) \
    -r $(RUNTIME) \
    -p:PublishSingleFile=true