从零开发游戏需要学习的c#模块,第三十五章(打包发布 —— 让别人玩你的游戏)

本节课学习目标

  1. 发布为一个独立的 .exe 文件

  2. 把所有资源打包进去

  3. 发给朋友,他们不需要装任何东西就能玩


第一步:确保资源文件正确

在 Visual Studio 右侧"解决方案资源管理器"里,检查以下文件:

文件 属性"复制到输出目录"
Content/player_spritesheet.png 如果较新则复制
Content/consola.ttf 如果较新则复制
Content/coin.wav 如果较新则复制
Content/hit.wav 如果较新则复制
Content/shoot.wav 如果较新则复制

右键每个文件 → 属性 → 确认"复制到输出目录"是 "如果较新则复制"。


第二步:改读取路径

在发布版中,资源文件在 .exe 旁边,需要用 AppDomain.CurrentDomain.BaseDirectory 来定位。

在 Game1.cs 顶部添加:

using System.Reflection;

然后把所有 File.OpenRead("Content/xxx") 改成使用绝对路径。

创建辅助方法 (放在 Game1 类里):

csharp

复制代码
private string GetContentPath(string relativePath)
{
    string baseDir = AppDomain.CurrentDomain.BaseDirectory;
    return Path.Combine(baseDir, "Content", relativePath);
}

修改 LoadContent 里的所有加载路径:

csharp

复制代码
// 旧的
using var stream = File.OpenRead("Content/player_spritesheet.png");

// 新的
using var stream = File.OpenRead(GetContentPath("player_spritesheet.png"));

同样的方式改字体和音效加载。


第三步:发布设置

  1. 在 Visual Studio 顶部菜单栏,把 Debug 改成 Release

  2. 右键你的项目 → 发布

  3. 选择 文件夹

  4. 目标位置选桌面或你方便找的地方

  5. 点击 完成 → 发布


第四步:设置发布选项

发布完成后,在项目属性里做一些关键设置:

  1. 右键项目 → 属性

  2. 点击左侧 发布

  3. 点击 显示所有设置

  4. 关键设置:

设置 值
部署模式 独立(自包含,对方不用装 .NET)
目标运行时 win-x64
生成单个文件 勾选(全部打包成一个 .exe)
  1. 保存,再次点击 发布

第五步:复制 Content 文件夹

发布出来的 .exe 需要和 Content 文件夹在一起。把项目里的 Content 文件夹完整复制到发布文件夹里。

最终发布文件夹的结构:

text

复制代码
发布文件夹/
├── 你的游戏.exe
├── Content/
│   ├── player_spritesheet.png
│   ├── consola.ttf
│   ├── coin.wav
│   ├── hit.wav
│   ├── shoot.wav
│   └── ...
├── savedata.json(会自动生成)

第六步:测试

  1. 把整个发布文件夹复制到另一台电脑(或发给朋友)

  2. 双击 .exe 文件

  3. 应该能直接运行,不需要安装任何东西

本节课学习到此结束,我是魔法阵维护师,关注我,下期更精彩!

相关推荐
sunshine22 girl9 分钟前
Java学习五 面向对象高级5 内部类1
java·学习
samble1 小时前
从零搭建灌装监控系统(十):生产追溯,条码触发自动记录
c#·wpf·mvvm·modbus·工业控制
bryant_meng2 小时前
【Game】Powerful——Pets(4.4)125~135
游戏·幻唐志·墨虎·贪狼·蚩尤武魂
每天题库2 小时前
架子工脚手架工题库:安全操作考点与模拟题练习指南
学习·安全·考试·题库·考证
yangmu32033 小时前
Codex 提示词优化教程:用四要素把模糊需求变成可执行任务
人工智能·学习
无敌贵点大王4 小时前
RTThread学习记录13——关于要使用一个外设,RTThread与cubemx到底要怎么配合?
c语言·stm32·学习·rtthread
bryant_meng4 小时前
【Game】Powerful——Pets(4.3)75~115
游戏·幻唐志·瑶光·赤炎童子·罗刹女
喜欢打篮球的普通人5 小时前
MiniMind 学习笔记(十二):Pretrain 实操——从版本梳理到 8GB 显卡上的真实训练
人工智能·笔记·学习
czhc11400756636 小时前
退出防呆:用“总闸“收口所有退出入口,以及三个并发语法坑
开发语言·c#
m4Rk_6 小时前
【论文阅读】Agent 记忆机制(87):VizoMem——把文本历史转化为可检索的视觉记忆
论文阅读·人工智能·学习·开源·github