原文:WPF:将Office文档、任意类型文件嵌入到EXE可执行文件中
版权声明:本文为博主原创文章,未经博主允许可以随意转载 https://blog.csdn.net/songqingwei1988/article/details/50259527
RT
可能这个需求比较奇怪
做了一个绿色版应用,最后只生成一个可执行的exe文件,不附带任何dll和其他文件。
新软件需要提供帮助手册,又不想额外提供文件,希望通过软件内部帮助按钮一键打开...
----- 需求结束 ---
应对思路,将文件嵌入到exe中,需要时将文件导出,这么做必然会增大exe的体积,不过1M左右文档也就不计较了~
step1:
将编辑好的文件加入到项目
可以看到文件实际被存为了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);
}
在合适的位置添加以上代码~
理论上任何文件到可以通过该方式实现
个人能力有限,也不知道这么做是否合理~