首页 > 解决方案 > 在 Linux 中发布 .Net Core 应用程序

问题描述

我有一个 .Net Core 5,我想在 Linux 机器上发布这个应用程序。

我在这台机器上安装了 .net core 5 sdk。

我用过dotnet publish AppName.sln,但我收到“正在恢复包”消息,它在此时停止。我没有得到发布目录或错误消息来找出导致此问题的原因。

我是否缺少运行 .net 核心应用程序的要求?

标签: .netlinux.net-core.net-core-publishsinglefile

解决方案


@M.peace 当我部署到 Linux 时,我在 Windows 上发布应用程序并将文件复制到(部署到)Linux 系统。我从不Linux 上发布。我只部署到Linux。这是一个重要的区别。以下是我的部署行动计划的一部分:

在 Linux 系统上:(对我来说,Debian。如果您不使用 Debian,这可能会有所不同。)

Install snapd
    (https://snapcraft.io/docs/installing-snap-on-debian)
    sudo apt-get install snapd
    sudo snap install core
Install .NET 5 Core SDK
    (https://docs.microsoft.com/en-us/dotnet/core/install/linux-snap)
    sudo snap install dotnet-sdk --classic --channel=5.0
    sudo snap alias dotnet-sdk-50.dotnet dotnet
    sudo ln -s /snap/dotnet-sdk/current/dotnet /usr/local/bin/dotnet

然后,Windows 构建机器:

Publish Application
    Target Runtime = linux-x64
    Deployment Mode = Framework-dependent
    Zip publish folder and copy to host

我的发布设置是:

Visual Studio .NET Core Web 应用发布设置

这就是在 Linux 上构建 .NET Core 项目所需要做的一切。为此,您需要将其配置为运行。如何做到这一点取决于项目是 Web 应用程序还是控制台应用程序。控制台应用程序相对简单。只需使用dotnet project.dll. Web 应用程序需要配置 Apache 和 Kestrel。


推荐阅读