【问题标题】:Do you have to have .net core installed on a system before using self contained apps?在使用自包含应用程序之前,您是否必须在系统上安装 .net 核心?
【发布时间】:2019-04-09 03:00:43
【问题描述】:

我正在使用 Visual Studio 2019 发布一个独立的 .net core 2.1 应用。在发布期间会发出许多文件(应用程序文件以及核心库)。

但发布的文件中没有包含 dotnet.exe。如果没有 dotnet.exe,我将无法启动已发布的应用程序!

所以我很困惑。您是否必须安装系统范围的 .net 核心才能使用自包含应用程序,如果是这样,那么您的应用程序肯定不是自包含的。

【问题讨论】:

  • 仅供参考,这是针对 linux-64 目标的,不是 asp.net 应用程序,只是一个控制台应用程序

标签: visual-studio .net-core


【解决方案1】:

一个独立的应用程序将包含运行该应用程序所需的一切。

要运行该应用程序,没有dotnet.exe,而是一个名为您的应用程序的可执行文件。所以

dotnet publish myapp.csproj -r win-x64

默认会创建一个myapp.exe。

对于 linux 运行时(例如-r linux-x64),可执行文件的扩展名更少,应该以./myapp 运行。

如果你想从 IIS 托管一个自包含的 ASP.NET Core 应用程序,你只需要安装 .NET Core 组件,因为你需要一个 IIS 模块来引导应用程序。不过,您可以使用此方法来运行您不想全局安装的 .NET Core 运行时的较新版本或预览版本。

【讨论】:

    【解决方案2】:

    通过使用“文件”查看文件来解决这个问题。 事实证明,当你为 linux 发布应用程序“Foo”时,你最终会得到一个名为 Foo 的文件,它实际上是一个可执行文件,可以启动你的整个应用程序(即,它需要的任何库等)。

    换句话说,不包含或不需要“dotnet”命令。实际上,Foo 代替了 dotnet 可执行文件。

    【讨论】:

    • 其实那个 Foo 文件和 dotnet 是一样的(为方便起见重命名和修饰)。
    猜你喜欢
    • 1970-01-01
    • 2023-04-03
    • 1970-01-01
    • 2019-01-24
    • 2017-09-08
    • 1970-01-01
    • 2013-01-22
    • 2021-02-03
    相关资源
    最近更新 更多