c# - 无法理解在 monogame/xna 中“发布”代码的工作原理
问题描述
作为一名新手编码爱好者,我使用 Visual Studio 和 Monogame 制作了一些简单的游戏,例如 pong、snake、tic-tac-toe。我想和朋友分享这些。
当我完成并构建/发布/编译(正确的术语是什么?)将代码转换为 .exe(不是调试)时,它会将其放入包含一堆其他文件的文件夹中。
那些是什么?我可以摆脱它们并将其全部放入 1 个文件中吗?我制作的程序似乎太简单了,无法拥有超过 1 个文件。
解决方案
当我完成并构建/发布/编译时(正确的术语是什么?)
编译是将 C# 代码转换为可执行文件的过程。编译是构建过程的一部分,它还可以包括其他任务,如测试、打包等。
要调试可执行文件,需要在“调试”配置中构建项目,其中包含大量额外数据以及您的代码。这些额外的数据允许调试器暂停并逐行执行源代码。当项目准备就绪时,它会在“发布”配置中构建,这只是您的应用程序所需的文件/数据可执行文件。
...它将它与一堆其他文件放在一个文件夹中。那些是什么?我可以摆脱它们并将其全部放入 1 个文件中吗?我制作的程序看起来太简单了,无法拥有超过 1 个文件。
好吧,即使您的应用程序很简单,您也使用 Monogame 作为依赖项,这是您项目中非常复杂且独立的部分。因此,如果您正在构建这样的项目,您总是可以期望这些文件存在。
您正在寻找的术语是“打包您的软件”。您需要创建一个包以便于分发。
编辑:Monogame 有一篇关于这个确切主题的文章。您需要通过 dotnet-sdk 在控制台中执行这些命令。
您还可以考虑将其设为 UWP 项目,这可能会使通过 Windows 应用商店分发变得稍微容易一些。当然,您可以将生成的 UWP 包文件发送给您的朋友,但这与您在使用桌面构建文件时遇到的问题有点相同。
您可以使用此 Visual Studio 的扩展将项目打包为 .msi 安装程序。我没有在 Monogame 上试过这个,但应该不会太难。
最后,您还可以将其压缩为 zip 包。一个便宜的黑客,但它的工作原理。
推荐阅读
- java - 云消息计划发送不起作用
- bash - 有没有人有一个脚本来计算包含特定单词的连续文件的数量?
- c# - 如何在 C# 查询中链接嵌套关系表中的数据
- python - Python,For循环:如何在下一个单元格[i+1,i+2,..]中附加TRUE值[i],直到条件变为FALSE
- java - 图标没有出现在 JComboBox 中以及如何调整大小?
- java - 具有不同类型的 AttributeOverride MappedSuperClass 属性
- typescript - 无法使用 npm 在 MacOS 上安装 Typescript
- java - Struts -1 动作有时会被多次调用,其余时间它工作正常
- sql - PostgreSQL:仅匹配整个单词的模式
- node.js - 有没有办法让 Axios 将数据作为默认响应返回?