我有一个 .Net Core 5,我想在 Linux 机器上发布这个应用程序。
我在这台机器上安装了.net core 5 sdk。
我使用了
dotnet publish AppName.sln
,但我收到“恢复包”消息,并且它在此时停止。
我没有收到发布目录或错误消息来找出导致此问题的原因。
我是否缺少运行 .net core 应用程序的要求?
@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://learn.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
我的发布设置是:
这就是将构建的 .NET Core 项目移植到 Linux 上所需要做的全部事情。为此,您需要将其配置为运行。如何执行此操作取决于该项目是 Web 应用程序还是控制台应用程序。控制台应用程序相对简单。只需使用
dotnet project.dll
运行即可。 Web 应用程序需要配置 Apache 和 Kestrel。