我已经发布了一个ASP.NETCore应用程序,作为一个面向Ubuntu的自包含应用程序。出版似乎工作得很好。我把文件复制到了一台漂亮的Ubuntu机器上。现在,我如何运行我的应用程序?
我的理解是,因为它是一个自包含的.NET Core应用程序,所以我 * 不 * 需要下载和安装.NET Core任何东西。我的应用程序应该包含它所需要的一切。
所有教程似乎都说我应该调用dotnet run
。但是,“dotnet”命令行不存在(它应该发布到自包含的文件夹中吗??)所以如果我调用它,我得到“command not found”。当然,我可以下载.NET Core,但这不是违背了整个独立的概念吗?
下面是我正在复制的文件的示例:
4条答案
按热度按时间eyh26e7m1#
回复
现在,我如何运行我的应用程序?我的理解是,因为它是一个自包含的. NET Core应用程序,所以我 * 不 * 需要下载和安装. NET Core任何东西。我的应用程序应该包含它所需要的一切。
你说得对。运行可执行文件。
创建自包含应用时,发布输出"包含启动应用所需的完整文件集(包括应用文件和所有. NET Core文件)"。
自包含部署示例
下面是
dotnet publish -c release -r ubuntu.14.04-x64
的输出,它是一个简单的自包含应用程序。将发布目录复制到Ubuntu并运行可执行文件。C:\MyApp\bin\release\netcoreapp1.0\ubuntu.14.04-x64\publish\
C:\MyApp\project.json
C:\MyApp\Program.cs
另请参阅
This document区分了依赖于框架的部署和自包含的部署。
yv5phkfx2#
按照以下步骤运行应用程序:
1.将您的应用程序发布为自包含应用程序:
1.将
publish
文件夹复制到Ubuntu计算机1.打开Ubuntu机器终端(CLI)并转到项目目录
1.提供执行权限:
1.执行应用程序
**作者:**Harit Kumar
**此处的原始答案:***如何在Linux上运行.NET Core控制台应用程序 *
ecr0jaav3#
值得注意的是,对于.NET Standard 2 +,需要两个步骤:
dotnet restore && dotnet build -c release -r RUNTIME
其中RUNTIME是.csproj文件中列出的运行时之一。
重要的是要注意,如果不编辑.csproj文件并调用
dotnet restore
,您就无法执行此操作,否则将无法从NuGet下载运行时,并且-r ...
标志将不起作用。g2ieeal74#
你可能也想看看dotnet-packaging。它包括一个
dotnet deb
命令行实用程序,允许您创建一个.deb
文件(即Ubuntu安装程序),您可以使用它在Ubuntu上安装应用程序。它应该使部署更容易为您。要开始,首先需要将此部分添加到
.csproj
文件中:然后运行
dotnet restore
和dotnet deb -c Release -r ubuntu.18.04-x64 -f netcoreapp2.0
。这将创建一个.deb
文件,您可以使用该文件将应用程序部署到Ubuntu。