在 Ubuntu 上运行独立的 ASP.NET Core 应用程序

2024-05-05

我已经发布了一个 ASP.NET Core 应用程序作为针对 Ubuntu 的独立应用程序。发布似乎工作正常。我已将这些文件复制到一台漂亮的 Ubuntu 机器上。现在,我如何运行我的应用程序?

我的理解是,因为它是一个独立的 .NET Core 应用程序,所以我do not需要下载并安装 .NET Core 的任何东西。我的应用程序应该包含它需要的一切。

所有教程似乎都说我应该打电话dotnet run。但是,“dotnet”命令行不存在(它应该发布到独立文件夹中吗??)所以如果我调用它,我会得到“命令未找到”。当然,我可以下载 .NET Core,但这是否违背了整个独立的概念?

这是我复制的文件示例:


Answer

现在,我如何运行我的应用程序?我的理解是,因为它是一个独立的 .NET Core 应用程序,所以我do not需要下载并安装 .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\

...

libsos.so
libsosplugin.so
libuv.so
Microsoft.CodeAnalysis.CSharp.dll
Microsoft.CodeAnalysis.dll
Microsoft.CodeAnalysis.VisualBasic.dll
Microsoft.CSharp.dll
Microsoft.VisualBasic.dll
Microsoft.Win32.Primitives.dll
Microsoft.Win32.Registry.dll
mscorlib.dll
mscorlib.ni.dll
MyApp                        <------- On Ubuntu, run this executable
MyApp.deps.json                       and you will see Hello World!
MyApp.dll
MyApp.pdb
MyApp.runtimeconfig.json
sosdocsunix.txt
System.AppContext.dll
System.Buffers.dll
System.Collections.Concurrent.dll
System.Collections.dll

...

C:\MyApp\project.json

{
  "buildOptions": {
    "debugType": "portable",
    "emitEntryPoint": true
  },
  "dependencies": {},
  "frameworks": {
    "netcoreapp1.0": {
      "dependencies": {
        "Microsoft.NETCore.App": "1.0.1"
      }
    }
  },
  "runtimes": {
    "ubuntu.14.04-x64" : {},
    "win10-x64" : {}
  }
}

C:\MyApp\Program.cs

public class Program
{
    public static void Main(string[] args)
    {
        System.Console.WriteLine("Hello World!");
    }
}

See Also

这个文件 https://learn.microsoft.com/en-us/dotnet/articles/core/deploying/index依赖框架的部署和独立部署之间的区别。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Ubuntu 上运行独立的 ASP.NET Core 应用程序 的相关文章

随机推荐