本教程演示如何发布控制台应用,以便其他用户可以运行它。 发布将创建运行应用程序所需的文件集。 若要部署文件,请将其复制到目标计算机。
.NET CLI 用于发布应用。
先决条件
- 本教程适用于您在 "使用 Visual Studio Code 创建 .NET 控制台应用程序" 中创建的控制台应用程序。
发布应用
启动 Visual Studio Code。
打开在使用 Visual Studio Code 创建 .NET 控制台应用程序中创建的 HelloWorld 项目文件夹。
从主菜单中选择“视图”>“终端”。
终端将在 HelloWorld 文件夹中打开。
运行以下命令:
dotnet publish默认的构建配置为 Release,适用于在生产环境中运行的已部署站点。 发布版本配置的输出包含非常少的符号调试信息,并已完全优化。
命令输出类似于以下示例:
Restore complete (1.1s) HelloWorld net10.0 succeeded (7.8s) → bin\Release\net10.0\publish\ Build succeeded in 10.3s
使用 Visual Studio Code 打开在创建 .NET 控制台应用程序中创建的 GitHub Codespace。
将以下代码行添加到 HelloWorld.cs顶部:
#:property PublishAot=false此属性指令禁用本机提前(AOT)编译,应用将在运行时使用标准的即时(JIT)编译器。 已发布的输出将依赖于框架。
在终端中,请确保位于 教程 文件夹中。
运行以下命令:
dotnet publish HelloWorld.cs该命令创建独立的可执行文件。
命令输出类似于以下示例:
Restore complete (0.5s) HelloWorld net10.0 succeeded (4.0s) → artifacts\HelloWorld\ Build succeeded in 5.1s
检查文件
默认情况下,发布过程会创建依赖于框架的部署,这是一种部署,其中已发布的应用程序在安装了 .NET 运行时的计算机上运行。 若要运行已发布的应用,可以使用可执行文件,或从命令提示符运行 dotnet HelloWorld.dll 命令。
在以下步骤中,你将查看发布过程创建的文件。
在左侧导航栏中选择“资源管理器”。
展开 bin/Release/net10.0/publish。
如下图所示,已发布的输出包含以下文件:
HelloWorld.deps.json
这是应用程序的运行时依赖项文件。 它定义运行应用所需的 .NET 组件和库(包括包含应用程序的动态链接库)。 有关详细信息,请参阅 运行时配置文件。
HelloWorld.dll
这是应用程序的依赖于框架的部署版本。 若要运行此动态链接库,请在命令提示符处输入
dotnet HelloWorld.dll。 运行应用的方法适用于安装了 .NET 运行时的任何平台。HelloWorld.exe(HelloWorld 在 Linux 或 macOS 上)。
这是应用程序的依赖于框架的可执行文件版本。 该文件特定于操作系统。
HelloWorld.pdb(对于部署是可选的)
这是调试符号文件。 无需与应用程序一起部署此文件,但应在调试应用程序的已发布版本时保存该文件。
HelloWorld.runtimeconfig.json
这是应用程序的运行时配置文件。 它标识了您的应用程序是为哪个 .NET 版本构建和运行的。 还可以向其添加配置选项。 有关详细信息,请参阅 .NET 运行时配置设置。
对于单文件应用程序,发布过程会创建一个包含编译程序集文件的工件目录。 可以使用命令 dotnet 运行已发布的应用程序。
在以下步骤中,你将查看发布过程创建的文件。
在左侧导航栏中选择“资源管理器”。
展开 项目/HelloWorld。
如下图所示,已发布的输出包含以下文件:
HelloWorld
这是应用程序的依赖于框架的可执行文件版本。 该文件特定于操作系统。 Codespaces 在 Linux 上运行,因此这是一个 Linux 可执行文件。
HelloWorld.deps.json
这是应用程序的运行时依赖项文件。 它定义运行应用所需的 .NET 组件和库(包括包含应用程序的动态链接库)。 有关详细信息,请参阅 运行时配置文件。
HelloWorld.dll
这是应用程序的依赖于框架的部署版本。 若要运行此动态链接库,请在命令提示符处输入
dotnet HelloWorld.dll。 运行应用的方法适用于安装了 .NET 运行时的任何平台。HelloWorld.pdb(对于部署是可选的)
这是调试符号文件。 无需与应用程序一起部署此文件,但应在调试应用程序的已发布版本时保存该文件。
HelloWorld.runtimeconfig.json
这是应用程序的运行时配置文件。 它标识了您的应用程序是为哪个 .NET 版本构建和运行的。 还可以向其添加配置选项。 有关详细信息,请参阅 .NET 运行时配置设置。
右键单击并选择“ 下载...” ,将文件从 Codespaces 下载到本地计算机。
运行已发布的应用
在“资源管理器”中,右键单击“发布”文件夹(在 macOS 上按住 Ctrl 单击),然后选择“在集成终端中打开”。
在终端中打开的上下文菜单
在 Windows 或 Linux 上,使用可执行文件运行应用。
在 Windows 上输入
.\HelloWorld.exe,然后按 Enter。在 Linux 上输入
./HelloWorld,然后按 Enter。输入名称以响应提示,然后按 Enter 退出。
在任何平台上,使用
dotnet命令运行应用:输入
dotnet HelloWorld.dll,然后按下 ,再按。输入名称以响应提示,然后按 Enter 退出。
在 资源管理器中,右键单击 项目/HelloWorld 文件夹,然后选择“ 在集成终端中打开”。
使用可执行文件运行应用。 输入
./HelloWorld,然后按 Enter。输入名称以响应提示,然后按 Enter 退出。
其他资源
清理资源
GitHub 会在 30 天不活动后自动删除 Codespace。 如果打算探索本系列中的更多教程,您可以保留 Codespace 配置。 如果已准备好访问 .NET 站点 来下载 .NET SDK,则可以删除 Codespace。 若要删除 Codespace,请打开浏览器窗口并导航到 Codespaces。 可在窗口中看到代码空间的列表。 在“学习教程代码空间”的条目中选择三个点(...)。 然后选择“删除”。
后续步骤
在本教程中,你发布了控制台应用。 在下一教程中,你将创建一个类库。
使用 Visual Studio Code 创建 .NET 类库