【问题标题】:ASP.NET Core self-contained exeASP.NET Core 自包含 exe
【发布时间】:2017-01-07 23:11:19
【问题描述】:

我希望我的 ASP.NET Core Web API 在 .NET Framework 而不是 .NET Core Framework 中作为独立的 exe 运行。那可能吗?谢谢!

编辑:

如果我将 "net451": {} 添加到 project.json 中的框架部分, 我得到以下异常:

Failed to make the following project runnable: myProject (.NETCoreApp,Version=v1.0) reason: Expected coreclr library not found in package graph. Please try running dotnet restore again.

【问题讨论】:

  • 答案是肯定的。我认为“如何”是隐含的:使用 OWIN 并使用 net45 作为目标框架。从技术上讲,这是两个问题,如果您搜索,您可以轻松找到答案。 codeproject.com/articles/869223/…
  • 如果你使用 ASP.NET Core 并在你的 project.json 中以 net46 为目标,你什么都做不了。只需运行dotnet publish。这将在发布文件夹中生成一个 .exe 文件。
  • @Stefanod'Antonio:我认为您将自托管与自包含混淆了
  • @Kalten:你也一样。问题是关于自包含,而不是自执行/自托管docs.microsoft.com/en-us/dotnet/articles/core/deploying/…。自包含意味着不需要额外的安装(即运行时),因为运行时随应用程序一起提供。这不适用于 .NET 4.x,仅适用于 .NET Core(因为它是模块化的)
  • @Tseng 自包含的 exe 必须是自托管的,反之亦然。你将如何在 IIS 中使用 exe?如果 marrschine 写了 self-contained only 我会同意的。

标签: asp.net-core asp.net-core-webapi


【解决方案1】:

您无法创建面向 .NET Framework >=4.5 的自包含应用程序,因为完整的 .NET Framework 不是模块化的,并且无法安装多个版本。较新的版本基本上总是替换以前的版本。

独立的应用程序是 .NET Core 的主要动力之一(以及可移植性)

总是必须先安装 .NET >=4.5,然后您的应用才能运行。自包含应用程序仅适用于 .NET Core,因为可以通过 nuget 包提取 .NET Core 库。

对于 .NET 4.6,您只能创建便携式应用程序,这是默认模式。

【讨论】:

  • 我认为您可能指的是 .NET
  • @GlennSills:我的意思是我所说的 ;) ASP.NET Core 基于 System.Runtime,它仅适用于 .NET 4.5。因此,ASP.NET Core 无法在任何早于 4.5 的 .NET Framework 上运行。 .NET 4.5 仍然是一个整体框架,不能并行运行,因为它不是模块化的。您必须先安装它,然后才能在其上运行 .NET 应用程序。 .NET Core 不同。您可以将所有内容打包在一起(框架和应用程序),因此只需解压缩应用程序即可使其在不安装特定运行时的情况下工作
  • 基本上:便携式应用程序 = 需要安装运行时,较小的部署。自包含应用 = 不需要运行时安装,但部署规模会增长(因为框架库需要与应用一起部署)
  • 所以,如果我理解正确的话 .exe 并不是真正自包含的,它是包含自包含的 .exe 的目录。没有办法创建一个 .exe 将所有内容都静态绑定到一个文件中。
  • @GGleGrand:.NET Core 上下文中的自包含是指在系统上不安装 .NET Core 运行时的情况下运行的能力,因为在这种情况下,所需的 .NET Core 系统库将是与应用程序打包在一起。在可移植的 .NET Core 应用程序中,这是不同的。运行时包不会随应用程序一起提供,并且需要先安装 .NET Core,然后才能在另一个系统上运行应用程序。据我所知,除了 ILMerge(谷歌搜索)之外,没有办法创建一个包含所有内容的单个 exe,但不确定这仍然适用于 .NET Core
猜你喜欢
  • 2019-09-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多