使用 Visual Studio 发布 .NET 控制台应用程序

本教程演示如何发布控制台应用,以便其他用户可以运行它。 发布应用程序会创建运行应用程序所需的一组文件。 若要部署文件,请将文件复制到目标计算机。

先决条件

发布应用

  1. 启动 Visual Studio。

  2. 打开在使用 Visual Studio 创建 .NET 控制台应用程序中创建的 HelloWorld 项目。

  3. 请确保 Visual Studio 正在使用“发布”生成配置。 必要时,将工具栏上的生成配置设置从“调试”更改为“发布”。

    Visual Studio toolbar with release build selected

  4. 右键单击“HelloWorld”项目(而不是 HelloWorld 解决方案),然后选择菜单中的“发布”。

    20220517224105770

  5. 在“发布”页的“目标”选项卡上,选择“文件夹”,然后选择“下一步” 。

    20220517224105321

  6. 在“发布”页的“特定目标”选项卡上,选择“文件夹”,然后选择“下一步” 。

    20220517224106967

  7. 在“发布”页的“位置”选项卡上,选择“完成” 。

    20220517224106835

  8. 在“发布”窗口的“发布”选项卡上,选择“发布” 。

    20220517224106927

检查文件

默认情况下,发布过程会创建依赖于框架的部署,在此类部署中,已发布的应用程序在已安装 .NET 运行时的计算机上运行。 用户可以通过双击可执行文件或从命令提示符发出 dotnet HelloWorld.dll 命令来运行发布的应用。

在下面的步骤中,查看由发布过程创建的文件。

  1. 在“解决方案资源管理器”中,选择“显示所有文件” 。

  2. 在项目文件夹中,展开 bin/Release/net5.0/publish。

    20220517224107210

    如下图所示,已发布的输出包括以下文件:

    • HelloWorld.deps.json

      这是应用程序的运行时依赖项文件。 该文件定义了运行应用所需的 .NET 组件和库(包括包含应用程序的动态链接库)。 

    • HelloWorld.dll

      这是应用程序的依赖于框架的部署版本。 若要执行此动态链接库,请在命令提示符处输入 dotnet HelloWorld.dll。 这种运行应用的方法适用于安装了 .NET 运行时的任何平台。

    • HelloWorld.exe

      这是应用程序的依赖于框架的可执行文件版本。 若要运行该版本,请在命令提示符处输入 HelloWorld.exe。 文件特定于操作系统。

    • HelloWorld.pdb(对于部署是可选的)

      这是调试符号文件。 尽管应在需要调试应用程序的已发布版本时保存此文件,但无需将此文件与应用程序一起部署。

    • HelloWorld.runtimeconfig.json

      这是应用程序的运行时配置文件。 该文件标识用于运行应用程序的 .NET 版本。 还可向其添加配置选项。 

运行已发布的应用

  1. 在“解决方案资源管理器”中,右键单击“模型”文件夹,然后选择“复制完整路径”。

  2. 打开命令提示符,然后导航到“发布”文件夹。 为此,请输入 cd,然后粘贴完整路径。 例如:

    控制台
    cd C:\Projects\HelloWorld\bin\Release\net6.0\publish\
  3. 使用可执行文件运行应用:

    1. 输入 HelloWorld.exe,然后按 Enter。

    2. 输入一个名字以响应提示,并按任意键退出。

  4. 使用 dotnet 命令运行应用:

    1. 输入 dotnet HelloWorld.dll,然后按 Enter。

    2. 输入一个名字以响应提示,并按任意键退出。

微软官方和51Aspx在.NET20周年之际,共同举办了.NET云原生开发挑战赛,只为了活跃.NET生态,目前正邀请行业技术人,分享免费直播课,还有微软和51Aspx平台礼品,最近一场是4.14周四19:30开讲

20220517224108563

往期录播课程,关注51Aspx微信视频号观看。

给TA打赏
共{{data.count}}人
人已打赏
开发工具

使用 Visual Studio 调试 .NET 控制台应用程序

2022-3-30 14:43:03

开发工具

使用 Visual Studio 创建 .NET 类库

2022-4-18 16:02:55

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
今日签到
有新私信 私信列表
搜索