据我目前在完整 .NET Framework 中的了解,当我们将框架安装到计算机上时,它将整个 BCL 部署到计算机的 GAC 中。这样,当我们使用 .NET 开发软件并将其部署到该计算机时,它将使用 BCL 程序集,这些程序集在安装 .NET Framework 本身时在 GAC 中可用。
现在,据我所知,CoreFX 相当于新 .NET Core 的 BCL。然而,主要的区别是我们可以在project.json
正是我们需要 CoreFX 的哪些部分。
我的问题是:当我们部署.NET Core应用程序时,生产环境上是否有等效的GAC?那么,当我们部署要执行的应用程序时,计算机中是否有任何中央位置,应用程序将在其中查看整个 CoreFX 是否可用?
编辑2017-09-01
与 GAC 有点类似,.NET Core 2.0 引入了“运行时包存储 https://learn.microsoft.com/en-us/dotnet/core/deploying/runtime-store":
从 .NET Core 2.0 开始,可以针对目标环境中存在的一组已知包来打包和部署应用程序。其优点是部署速度更快、磁盘空间使用率更低,并且在某些情况下还可以提高启动性能。
此功能作为运行时包存储实现,它是磁盘上存储包的目录(通常在 macOS/Linux 上位于 /usr/local/share/dotnet/store ,在 Windows 上位于 C:/Program Files/dotnet/store ) 。
您正在寻找“依赖于框架的部署”。从the docs https://learn.microsoft.com/en-us/dotnet/articles/core/deploying/index:
您可以为 .NET Core 应用程序创建两种类型的部署:
依赖于框架的部署。顾名思义,框架相关部署 (FDD) 依赖于目标系统上存在的共享系统范围的 .NET Core 版本。由于 .NET Core 已经存在,因此您的应用程序也可以在 .NET Core 安装之间移植。您的应用程序仅包含其自己的代码以及 .NET Core 库之外的任何第三方依赖项。 FDD 包含可以通过使用 dotnet 实用程序从命令行启动的 .dll 文件。例如,dotnet app.dll
运行一个名为app
.
独立部署。与 FDD 不同,独立部署 (SCD) 不依赖于目标系统上存在的任何共享组件。所有组件(包括 .NET Core 库和 .NET Core 运行时)都包含在应用程序中,并与其他 .NET Core 应用程序隔离。 SCD 包含可执行文件(例如app.exe
在 Windows 平台上,名为的应用程序app
),这是特定于平台的 .NET Core 主机的重命名版本,以及 .dll 文件(例如app.dll
),这是实际应用。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)