WPF:将Office文档、任意类型文件嵌入到EXE可执行文件中

时间:2022-09-16 14:25:33

原文:WPF:将Office文档、任意类型文件嵌入到EXE可执行文件中

版权声明:本文为博主原创文章,未经博主允许可以随意转载 https://blog.csdn.net/songqingwei1988/article/details/50259527

RT

可能这个需求比较奇怪

做了一个绿色版应用,最后只生成一个可执行的exe文件,不附带任何dll和其他文件。

新软件需要提供帮助手册,又不想额外提供文件,希望通过软件内部帮助按钮一键打开...

----- 需求结束 ---

应对思路,将文件嵌入到exe中,需要时将文件导出,这么做必然会增大exe的体积,不过1M左右文档也就不计较了~

step1:

将编辑好的文件加入到项目

WPF:将Office文档、任意类型文件嵌入到EXE可执行文件中WPF:将Office文档、任意类型文件嵌入到EXE可执行文件中

WPF:将Office文档、任意类型文件嵌入到EXE可执行文件中

可以看到文件实际被存为了byte[]类型

        /// <summary>
/// 查找 System.Byte[] 类型的本地化资源。
/// </summary>
public static byte[] Help {
get {
object obj = ResourceManager.GetObject("Help", resourceCulture);
return ((byte[])(obj));
}
}

setp2: Coding...

            try
{
var filePath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Desktop), "用户手册.pptx"); //已存在文档,不需要再次解压
if (File.Exists(filePath) == false)
{
File.WriteAllBytes(filePath, Properties.Resources.Help);
} Process.Start(filePath);
}
catch (Exception exception)
{
MessageBox.Show(string.Format("导出用户手册异常:{0}?", exception.Message), "提示", MessageBoxButton.OK, MessageBoxImage.Information);
}

在合适的位置添加以上代码~

理论上任何文件到可以通过该方式实现

个人能力有限,也不知道这么做是否合理~