当前位置:  开发笔记 > 编程语言 > 正文

如何在EXE中存储文件

如何解决《如何在EXE中存储文件》经验,为你挑选了2个好方法。

好吧,所以我正在用C#编写我自己的安装程序,而我想要做的就是把文件放在.exe中,所以我可以做File.Copy(file,filedir);

或者,如果这是不可能的,还有另一种方法可以做我想做的事情吗?



1> Shawn Miller..:

我不会编写自己的安装程序代码,但如果您真的想将文件嵌入到程序集中,则可以使用强类型资源.在项目的属性对话框中,打开"资源"选项卡,然后添加文件.然后,您将能够使用以下命令获取该文件:

ProjectNamespace.Properties.Resources.MyFile

然后,您将能够使用以下方法将嵌入式资源写入磁盘:

System.IO.File.WriteAllBytes(@"C:\MyFile.bin", ProjectNamespace.Properties.Resources.MyFile);



2> Erik Funkenb..:

老实说,我建议你不要创建自己的安装程序.创建安装程序有很多问题.即使是大型安装程序制造商也不再制作他们自己的实际安装程序,他们只是创建自定义MSI包.

使用Mirosoft Installer(MSI).这是正确的做法.为它制作自己的自定义前端,但不要重新创建已存在的非常复杂的轮子.

更新:如果您只是为了学习而这样做,那么我会回避将其视为"安装人员".你有可能想要接受你的"研究"并在某一天使用它,坦率地说,当新版本的Windows出现时,我们最终会遇到这么多问题.人们创造自己的轮子,假设是无效的.

您真正想做的事情被称为"打包",您必须非常熟悉可执行PE格式,因为您正在谈论更改磁盘上PE映像的结构.

您可以将文件放入资源中来模拟它,但这并不是安装程序或自解压程序所做的.

这是Self-Extractor教程的链接,但它不在C#中.

我不太了解.NET PE要求,知道是否可以使用托管代码可执行文件执行此操作.

UPDATE2:这可能是你正在寻找的更多内容,它将文件嵌入资源中,但正如我所说,它并不是专业安装程序或自解压程序的方式.我认为你可以嵌入什么资源有各种限制.但这就是用C#编写的Self-Extractor Demo.

推荐阅读
殉情放开那只小兔子
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有