zoukankan      html  css  js  c++  java
  • 将ZIP文件添加到程序集资源文件然后在运行时解压文件

    今天做安装打包程序研究,之前同事将很多零散的文件发布成一个安装文件夹给用户,这样体验不好,我希望将所有文件打包成一个.net程序,运行此程序的时候自解压然后执行后续的安装步骤。

    解决过程:

    1,将所有零散文件使用WinRAR工具,打包成一个ZIP格式文件,比如 SetupRes.zip

    2,新建一个控制台或者WinForms程序项目作为“打包项目”;

    3,将SetupRes.zip文件放到打包程序项目的根目录下面,选择此文件,属性-》嵌入的资源;

    4,添加如下代码:

     class Program
        {
            static void Main(string[] args)
            {
                //解压嵌入式资源示例
                string currNamespace = "ConsoleApp1";
                string fileName = "SetupRes.zip";
                string resourceName = string.Format("{0}.{1}", currNamespace, fileName);
                Stream so = Assembly.GetEntryAssembly().GetManifestResourceStream(resourceName);
                if (so != null)
                {
                    WriteStreamFile(fileName, so);
                    System.IO.Compression.ZipFile.ExtractToDirectory(fileName, ".\");
    
                    Console.WriteLine("文件解压成功!");
                }
                Console.Read();
            }
    
            private static void WriteStreamFile(string fileName, Stream stream)
            {
                FileStream fs = File.OpenWrite(fileName);
                int bytesRead = 0;
                byte[] buffer = new byte[65536];
                while ((bytesRead = stream.Read(buffer, 0, buffer.Length)) > 0)
                {
                    fs.Write(buffer, 0, bytesRead);
                }
                stream.Close();
                fs.Close();
            }
        }

    5,编译,运行,发现运行目录解压出来了ZIP文件和解压后的目录。

    以后做.NET程序的安装包,就方便了!

  • 相关阅读:
    第六十三篇 用户权限、pymysql模块
    第六十二篇 视图、触发器、事务、存储过程
    第六十一篇 SQL查询语句
    第六十篇 约束、表关系
    第五十九篇 数据库配置文件以及数据类型
    第五十八篇 epoll模型、数据库
    第五十七篇 IO模型
    第五十六篇 并发之协程
    第五十五篇 死锁、GIL锁以及Pool
    第五十四篇 并发之线程
  • 原文地址:https://www.cnblogs.com/bluedoctor/p/8006342.html
Copyright © 2011-2022 走看看