本节课学习目标
-
发布为一个独立的
.exe文件 -
把所有资源打包进去
-
发给朋友,他们不需要装任何东西就能玩
第一步:确保资源文件正确
在 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"));
同样的方式改字体和音效加载。
第三步:发布设置
-
在 Visual Studio 顶部菜单栏,把 Debug 改成 Release
-
右键你的项目 → 发布
-
选择 文件夹
-
目标位置选桌面或你方便找的地方
-
点击 完成 → 发布
第四步:设置发布选项
发布完成后,在项目属性里做一些关键设置:
-
右键项目 → 属性
-
点击左侧 发布
-
点击 显示所有设置
-
关键设置:
| 设置 | 值 |
|---|---|
| 部署模式 | 独立(自包含,对方不用装 .NET) |
| 目标运行时 | win-x64 |
| 生成单个文件 | 勾选(全部打包成一个 .exe) |
- 保存,再次点击 发布
第五步:复制 Content 文件夹
发布出来的 .exe 需要和 Content 文件夹在一起。把项目里的 Content 文件夹完整复制到发布文件夹里。
最终发布文件夹的结构:
text
发布文件夹/
├── 你的游戏.exe
├── Content/
│ ├── player_spritesheet.png
│ ├── consola.ttf
│ ├── coin.wav
│ ├── hit.wav
│ ├── shoot.wav
│ └── ...
├── savedata.json(会自动生成)
第六步:测试
-
把整个发布文件夹复制到另一台电脑(或发给朋友)
-
双击
.exe文件 -
应该能直接运行,不需要安装任何东西
本节课学习到此结束,我是魔法阵维护师,关注我,下期更精彩!