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

问题描述 投票:0回答:1

我的问题就是标题中所说的。我想将我的C#应用程序构建成Windows、Linux和MacOS的可执行文件,这样我就可以将它们发布在我的github repo上。我该怎么做呢?也许一个makefile或者类似的东西可以一次创建所有的程序会很方便?

c# .net-core cross-platform
1个回答
1
投票

如果你使用的是.NET Core 3.x或更高版本,你可以使用 dotnet publish 有各种选择,以 制作独立的可执行文件:

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上发布。

(顺便说一下。这个可执行文件会自动解压成几十个文件,然后运行那个版本。这意味着你将无法运行它,例如,在一个没有可以写入磁盘的系统上。)

是的,你绝对可以把它包在一个叫做 "S "的文件里。Makefile 或什么的。下面是我做的一个Cli工具的例子。

publish:
    dotnet publish \
    -c $(CONFIGURATION) \
    -r $(RUNTIME) \
    -p:PublishSingleFile=true
© www.soinside.com 2019 - 2024. All rights reserved.