C# 如何“构建”包含所有资源文件(如图片)的exe?exe可以放在网页上吗?

C# 如何“构建”包含所有资源文件(如图片)的exe?exe可以放在网页上吗?,c#,visual-studio,C#,Visual Studio,我有一些高中生使用Visual Studio C创建了一些程序。他们创建了一些游戏,现在想将它们上传到web上。我是Visual Studio C的新手。我认为在构建程序后,您可以进入bin/debug文件夹,获取程序的exe文件,并且能够玩游戏,而不必在实际玩游戏的计算机上安装Visual Studio。它适用于他们的一些游戏,但其中一些游戏,如果所有其他文件不存储在同一位置,exe文件中会丢失图形文件。我怎样才能得到他们游戏的完整版本?可以将exe加载到web服务器上,以便他们可以从那里播放

我有一些高中生使用Visual Studio C创建了一些程序。他们创建了一些游戏,现在想将它们上传到web上。我是Visual Studio C的新手。我认为在构建程序后,您可以进入bin/debug文件夹,获取程序的exe文件,并且能够玩游戏,而不必在实际玩游戏的计算机上安装Visual Studio。它适用于他们的一些游戏,但其中一些游戏,如果所有其他文件不存储在同一位置,exe文件中会丢失图形文件。我怎样才能得到他们游戏的完整版本?可以将exe加载到web服务器上,以便他们可以从那里播放它,或者至少从那里下载它吗?

Microsoft编写了一份指南,介绍了如何做到这一点。它在他们的MSDN网站上,这有点像许多微软软件和文档的开发者的脊梁骨

旧指南:

更新的指南:


要点是程序需要知道文件的位置,相对于编译后的二进制文件的位置(在本例中为.EXE);根据您的专业水平,有几种不同的方法可以做到这一点。我建议您先看看上面的指南,然后开始旅程。

有几种方法可以做到这一点。另外,确保编译时正在创建“发布”版本

您可以通过创建资源文件在游戏中包含资源。这是我通常只在winforms应用程序上做的事情

若你们有磁盘上的文件,你们需要将这些磁盘上的文件和你们的游戏一起分发。您可以通过压缩game.exe和/files/images.img文件夹或资源内容文件夹的名称来实现这一点

如果你喜欢冒险,你可以创建一个“部署项目”,这是一个允许你创建安装程序文件的项目。这是一个多一点的工作,但你将有细粒度控制什么文件去哪里等

祝你好运

我认为,在一个程序构建之后,您可以进入bin/debug文件夹,获取程序的exe文件,并且能够玩游戏,而不必在您正在玩的实际计算机上安装Visual Studio

这是正确的,因为另一台计算机安装了必要的.NET framework版本,并且还存在任何其他资源,如.dll文件和配置文件。当应用程序准备发布时,可以将项目属性中的生成选项设置为“发布”,然后在生成分发所需的所有文件时,这些文件将位于bin\release文件夹中

它适用于他们的一些游戏,但其中一些游戏,如果所有其他文件不存储在同一位置,exe文件中会丢失图形文件

这可能取决于应用程序的编写方式。如果像图片这样的资源是可用的,那么这些文件将不需要在另一台机器上运行。如果应用程序在源代码中使用硬编码的图像资源路径,那么如果在执行.exe时没有必要的文件,应用程序可能会中断

可以将exe加载到web服务器上,以便他们可以从那里播放它,或者至少从那里下载它吗

是-您可以将.exe上载到文件服务器以供下载,但无法在浏览器中通过web运行它。我建议压缩.exe和其他需要的文件,并在web服务器上托管.zip文件以供下载;浏览器可能会发出警告或阻止下载.exe


希望这能为您解释一下。

EXE文件对于具有许多资源的视频游戏通常不是独立的,只需在外部文件夹中添加资源,并确保其游戏中的资源路径不是绝对路径,而是本地目录中的相对路径

例如: 去掉像C:/Users/Bob/Desktop/Game/Images/player.png这样的路径,并替换为/Images/player.png

此外,EXE通常不会在网页上运行客户端,这是可能的,但很困难。像Flash这样的东西就是为这类问题设计的。我要说的是,让网页成为他们可以下载游戏的地方。Github有一个很好的方法来创建名为gh页面的免费网站。OFC,您可以自己主持一个,但这需要大量的设置工作


就像蒙扎说的,你可以把文件压缩下载。或者,如果你真的想雄心勃勃,你可以创建一个安装程序

这更有意义。非常感谢你花时间解释这么多。我当然很感激,我知道学生们也会的:-谢谢你提供的信息!这个网站将是一个伟大的资源为我的课,谢谢你的帮助!没问题,@LindaBrown-如果您认为它符合条件,请将此标记为选定答案。