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

原文: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);
            }

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

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


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


上一篇:SQL中日期格式化


下一篇:日期格式符RR和YY的区别