【问题标题】:Embded files in a compiled .exe在已编译的 .exe 中嵌入文件
【发布时间】:2026-02-06 08:35:01
【问题描述】:

我正在做一个关于制作带有内置库的视频播放器的项目。

我想做的是在 Flash CS5、Python(使用 Phonon)或 C# 中创建一个自定义视频播放器,它可以播放任何视频文件(独立于扩展名)。这个想法是,当我运行我的程序时,将播放嵌入在编译的 .exe 中的视频文件。

有没有办法可以将视频文件包含在已编译的 .exe 中?

编辑:视频文件大小约为 100 MB。

【问题讨论】:

标签: c# python video compilation flash-cs5


【解决方案1】:

让我看看我是否正确理解了您的问题。我假设您想将视频文件嵌入到您正在创建的视频播放器应用程序中。视频可以是任何类型(.avi、.mp4、.flv),应用程序将是可执行文件 (.exe)。

如果是这种情况,那么您需要做的是,使用 Visual Studio,将您的视频文件作为资源添加到您的项目中,重新构建项目并从您的代码中访问该资源。

例如,如果您在项目中添加了MyVideo.avi,则在构建项目后,您可以将其作为MyNamespace.MyVideo.avi 访问。

以下是一些 SO 帖子,它们提供了项目中嵌入资源的更具体示例:

【讨论】:

  • 您好,谢谢您的友好回答,我会研究您给我的链接。并稍后给您反馈。它可能与我想的不一样,但是将它放在资源文件中一点也不差。
  • 你好,阿巴斯,关于自解压器,它几乎正是我需要的,但我需要稍微调整一下,现在这是我的新问题,它成功创建了资源文件,但是当我运行它时,会出现这个对话框并要求我选择我想要提取它的路径,无论如何我可以自动化这部分吗?就像总是在 c:\ 上提取它?
  • 我很乐意提供帮助。你是怎么解决的?
  • 关于提取部分?我希望它在我想要的目录路径上设置在哪里?如果那是.. 在 SelfExtractor.cs 我刚刚注释掉以下内容,FolderBrowserDialog fbd = new FolderBrowserDialog();然后 fbd.Description = "请选择一个目标文件夹。";然后 if (fbd.ShowDialog() == DialogResult.OK) 那么该 if 语句的 { 和 } 。然后我用这个字符串修改了第 54 行 path = Path.Combine("C:\\", Path.GetFileNameWithoutExtension(name)); // 删除“.gz”
  • 我从来没有真正解决将文件嵌入到 .exe 中的主要问题,但是你教我的那个人有点相似。我唯一不喜欢的是文件仍在被提取。我想知道的是我们是否可以在不提取文件的情况下运行程序..从内部运行它