可在两种模式下发布使用 .NET Core 创建的应用程序,模式会影响用户运行应用的方式。
将应用作为独立应用,生成的应用程序将包含 .NET Core 运行时和库,以及该应用程序及其依赖项。 应用程序的用户可以在未安装 .NET Core 运行时的计算机上运行该应用程序。
若将应用发布为依赖于运行时(以前称为“依赖于框架”),则生成的应用程序仅包含该应用程序本身及其依赖项。 应用程序的用户必须单独安装 .NET Core 运行时。
默认情况下,这两种发布模式都会生成特定于平台的可执行文件。 不使用可执行文件也可以创建依赖于运行时的应用程序,这些应用程序是跨平台的。
生成可执行文件时,可以使用运行时标识符 (RID) 指定目标平台。 有关 RID 的详细信息,请参阅 .NET Core RID 目录。
下表概述了每个 SDK 版本用于将应用发布为依赖于运行时的应用或独立应用的命令:
表 1类型SDK 2.1SDK 3.x命令适用于当前平台的依赖于运行时的可执行文件。✔️dotnet publish适用于特定平台的依赖于运行时的可执行文件。✔️dotnet publish -r --self-contained false依赖于运行时的跨平台二进制文件。✔️✔️dotnet publish独立可执行文件。✔️✔️dotnet publish -r
有关详细信息,请参阅 .NET Core dotnet publish 命令。
生成可执行文件
可执行文件不是跨平台的。 它们特定于操作系统和 CPU 体系结构。 发布应用并创建可执行文件时,可以将应用发布为独立应用或依赖于运行时的应用。 将应用发布为独立应用,会在应用中包含 .NET Core 运行时,该应用的用户无需在运行应用前安装 .NET Core。 如果将应用发布为依赖于运行时的应用,则该应用不包含 .NET Core 运行时和库,而仅包含该应用和第三方依赖项。
以下命令可生成可执行文件:
表 2类型SDK 2.1SDK 3.x命令适用于当前平台的依赖于运行时的可执行文件。✔️dotnet publish适用于特定平台的依赖于运行时的可执行文件。✔️dotnet publish -r --self-contained false独立可执行文件。✔️✔️dotnet publish -r
生成跨平台二进制文件
以 dll 文件的形式将应用发布为依赖于运行时的应用时,将创建跨平台二进制文件。 dll 文件将与项目同名。 例如,如果有名为 word_reader 的应用,则会创建名为 word_reader.dll 的文件。 以这种方式发布的应用可通过 dotnet 命令运行,并且可在任意平台上运行。
只要安装了目标 .NET Core 运行时,就可以在任何操作系统上运行跨平台二进制文件。 如果未安装目标 .NET Core 运行时,如果将应用配置为前滚,则它可以使用较新的运行时运行。 有关详细信息,请参阅依赖于运行时的应用前滚。
以下命令可生成跨平台二进制文件:
表 3类型SDK 2.1SDK 3.x命令依赖于运行时的跨平台二进制文件。✔️✔️dotnet publish
发布依赖于运行时的应用
如果将应用发布为依赖于运行时的应用,则该应用是跨平台的,且不包含 .NET Core 运行时。 应用的用户需要安装 .NET Core 运行时。
将应用发布为依赖于运行时的应用,会以 dll 文件的形式生成一个 跨平台二进制文件,还会生成面向当前平台的特定于平台的可执行文件。 dll 是跨平台的,而可执行文件不是。 例如,如果发布名为 word_reader 的应用且面向 Windows,则将创建 word_reader.exe 和 word_reader.dll。 面向 Linux 或 macOS 时,将创建 word_reader 可执行文件和 word_reader.dll。 有关 RID 的详细信息,请参阅 .NET Core RID 目录。
发布依赖于运行时的应用时,.NET Core SDK 2.1 不会生成特定于平台的可执行文件。
可以通过 dotnet 命令运行应用的跨平台二进制文件,并且它可以在任何平台上运行。 如果应用使用具有特定于平台的实现的 NuGet 包,则所有平台的依赖项都将连同应用一起复制到发布文件夹。
可以通过将 -r --self-contained false 参数传递到 dotnet publish 命令,为特定平台创建可执行文件。 省略 -r 参数时,将为当前平台创建可执行文件。 具有特定于目标平台的依赖项的任何 NuGet 包都将复制到发布文件夹。
-
小型部署仅分发应用及其依赖项。 .NET Core 运行时和库由用户安装,所有应用共享运行时。
-
跨平台应用和任何基于 .NET 的库都可在不同的操作系统上运行。 无需为应用定义目标平台。 有关 .NET 文件格式的详细信息,请参阅 .NET 程序集文件格式。
-
使用最新修补运行时应用会使用目标系统上安装的最新运行时(在 .NET Core 的目标大小系列中)。 这意味着应用将自动使用 .NET Core 运行时的最新修补版本。 可以重写这一默认行为。 有关详细信息,请参阅依赖于运行时的应用前滚。
-
要求预先安装运行时
仅当主机系统上已安装应用设为目标的 .NET Core 版本时,应用才能运行。 可以为应用配置前滚行为,要求使用特定版本的 .NET Core 或允许使用较新版本的 .NET Core。 有关详细信息,请参阅依赖于运行时的应用前滚。
-
.NET Core 可能更改可以在运行应用的计算机上更新 .NET Core 运行时和库。 在极少数情况下,如果使用 .NET Core 库(大多数应用都会使用),这可能会更改应用的行为。 可以配置应用如何使用较新版本的 .NET Core。 有关详细信息,请参阅依赖于运行时的应用前滚。
以下缺陷仅限于.NET Core 2.1 SDK。
-
使用 dotnet 命令启动应用
用户必须运行 dotnet 命令来启动你的应用。 如果将应用发布为依赖于运行时的应用,则 .NET Core 2.1 SDK 不会生成特定于平台的可执行文件。
发布依赖于运行时的跨平台应用。 与 dll 文件一起创建面向当前平台的可执行文件。
dotnet复制
dotnet publish
发布依赖于运行时的跨平台应用。 与 dll 文件一起创建 Linux 64 位可执行文件。 此命令对于 .NET Core SDK 2.1 无效。
dotnet复制
dotnet publish -r linux-x64 --self-contained false
发布独立应用
将应用发布为独立应用,将生成特定于平台的可执行文件。 输出发布文件夹包含应用的所有组件,包括 .NET Core 库和目标运行时。 应用独立于其他 .NET Core 应用,且不使用本地安装的共享运行时。 应用的用户无需下载和安装 .NET Core。
针对指定的目标平台生成可执行二进制文件。 例如,如果你有一个名为 word_reader 的应用,并发布适用于 Windows 的独立可执行文件,则将创建 word_reader.exe 文件。 针对 Linux 或 macOS 发布时,将创建 word_reader 文件。 用 dotnet publish 命令的 -r 参数指定目标平台和体系结构。 有关 RID 的详细信息,请参阅 .NET Core RID 目录。
如果应用具有特定于平台的依赖项(例如包含特定于平台的依赖项的 NuGet 包),这些依赖项将与应用一起复制到发布文件夹。
-
控制 .NET Core 版本你可以控制随应用部署的 .NET Core 版本。
-
特定于平台的定向由于你必须为每个平台发布应用,因此你知道应用可运行于哪些平台。 如果 .NET Core 引入了新平台,则用户无法在该新平台上运行你的应用,直到你发布面向该平台的版本。 在用户在新平台上运行你的应用之前,你可以测试应用以排除兼容性问题。
-
大型部署由于你的应用包含 .NET Core 运行时和所有应用依赖项,因此下载大小和所需硬盘空间比依赖于运行时的版本大。 提示可以通过使用 .NET Core 全球化固定模式在 Linux 系统上减少大约 28 MB 的部署大小。 这会强制应用像处理固定区域性一样处理所有区域性。
-
较难更新 .NET Core 版本只能通过发布新版本的应用来升级(与应用一起分发的).NET Core 运行时。 你负责向 .NET Core 运行时的安全修补程序提供应用程序的更新版本。
发布独立应用。 创建 macOS 64 位可执行文件。
dotnet复制
dotnet publish -r osx-x64
发布独立应用。 创建 Windows 64 位可执行文件。
dotnet复制
dotnet publish -r win-x64
可在两种模式下发布使用 .NET Core 创建的应用程序,模式会影响用户运行应用的方式。将应用作为独立应用,生成的应用程序将包含 .NET Core 运行时和库,以及该应用程序及其依赖项。 应用程序的用户可以在未安装 .NET Core 运行时的计算机上运行该应用程序。若将应用发布为依赖于运行时(以前称为“依赖于框架”),则生成的应用程序仅包含该应用程序本身及其依赖项。 应用程序的用户必须单独安...
1. 进程虚拟地址空间
程序和进程有什么区别:程序(或者狭义上讲
可执行文件
)是一个静态的概念,它就是一些预先编译好的指令和数据集合的一个文件;进程则是一个动态的概念,它是程序运行时的一个过程,很多时候把动态库叫做运行时(Runtime)也有一定的含义。
每个程序被运行起来以后,它将拥有自己独立的虚拟地址空间(Virtual Address Sp...
出现这个问题,多半是打开方式关联错误
右键点击ppt文件>打开方式>默认打开方式,
可以看到成了Microsoft Office 2010 component,这应该就是问题的根源。
解决方法:
右击某个ppt文件,选择“属性”。
打开方式右边的单击“更改”。
然后,按一下“浏览”按钮
到系统文件夹中找到Program Files\Microsoft Office\Office