使用自包含的应用程序之前,必须在系统上安装.net核心吗?

时间:2019-04-08 18:40:34

标签: visual-studio .net-core

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

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

所以我很困惑。必须安装一个系统范围的.net内核才能使用独立的应用程序,如果是这样,那么您肯定不是独立的应用程序。

2 个答案:

答案 0 :(得分: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运行时的更新版本或预览版本。

答案 1 :(得分:0)

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

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