如何在 .Net 中为特定平台构建可执行文件?
How to build executables for specific platforms in .Net?
我的问题是标题中的内容。我想将我的 C# 应用程序构建为 Windows、Linux 和 MacOS 的可执行文件,这样我就可以将它们放在我的 github 存储库中的一个版本中。我怎么做?也许一次性创建一个 makefile 或类似的东西会很方便?
如果您使用的是 .NET Core 3.x 或更高版本,您可以使用 dotnet publish
和 produce 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
我的问题是标题中的内容。我想将我的 C# 应用程序构建为 Windows、Linux 和 MacOS 的可执行文件,这样我就可以将它们放在我的 github 存储库中的一个版本中。我怎么做?也许一次性创建一个 makefile 或类似的东西会很方便?
如果您使用的是 .NET Core 3.x 或更高版本,您可以使用 dotnet publish
和 produce 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