将文件存储在C#EXE文件中

use*_*393 2 c# executable file

对我来说,在EXE中存储一些文件以复制到选定位置实际上很有用.我正在生成HTML和JS文件,需要复制一些CSS,JS和GIF.

片段

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

对我不起作用!

在"WriteAllBytes"上,它说:"无法从'System.Drawing.Bitmap'转换为'byte []'"用于图像,"无法从'string'转换为'byte []'"用于文本文件.

救命!

更新:解决方案如下.

Phi*_*Gan 7

将所需文件添加到解决方案中,然后将其Build Action属性设置为Embedded Resource.这会将文件嵌入到您的exe中.(msdn)

然后你只需要编写代码,在执行exe时将文件写入磁盘.

就像是:

File.Copy("resource.bmp", @"C:\MyFile.bin");
Run Code Online (Sandbox Code Playgroud)

替换resource.bmp为您的文件名.

附录:

如果将文件保存在解决方案的子文件夹中,则需要将子文件夹作为路径的一部分resource.bmp.例如:

File.Copy(@"NewFolder1\resource.bmp", @"C:\MyFile.bin");
Run Code Online (Sandbox Code Playgroud)

此外,您可能需要将Copy To Output Directory属性设置为Copy AlwaysCopy If Newer.