将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程序的安装包,就方便了!



    本文转自深蓝医生博客园博客,原文链接:http://www.cnblogs.com/bluedoctor/p/8006342.html,如需转载请自行联系原作者


相关文章
|
18天前
|
Python
使用pyinstall将.py文件打包可执行文件.exe
使用pyinstall将.py文件打包可执行文件.exe
|
8月前
|
Java
Java实现zip文件压缩:单个文件、文件夹以及文件和文件夹的压缩
Java实现zip文件压缩:单个文件、文件夹以及文件和文件夹的压缩
PyInstall的安装,使用,以及最后打包成一个exe文件
PyInstall的安装,使用,以及最后打包成一个exe文件
|
安全 Java API
【Android 安全】DEX 加密 ( 代理 Application 开发 | 解压 apk 文件 | 判定是否是第一次启动 | 递归删除文件操作 | 解压 Zip 文件操作 )
【Android 安全】DEX 加密 ( 代理 Application 开发 | 解压 apk 文件 | 判定是否是第一次启动 | 递归删除文件操作 | 解压 Zip 文件操作 )
122 0
|
数据安全/隐私保护
命令行方式调用winrar对文件夹进行zip压缩示例代码
调用winRAR进行压缩 [csharp] view plain copy   using System;   using System.Collections.Generic;   using System.
2456 0
|
Java Shell 数据安全/隐私保护
Apktool回编译APK变大原因--关于apktool.yml的可压缩文件配置
1.背景 为了实现apk字节码加密技术,我在CI上通过插入了脚本重新打包任务。然而,这改动导致apktool回编译apk包变大,文件经调研和分析发现:在apktool 2.0.3之后为了快速解压和打包,加入了反编译文件回编译不压缩机制。
5009 0
|
Python
.py文件打包成exe可执行文件
1.安装 pip install pyinstaller 2.命令: 加上-w是去掉调试用的命令行窗口,print会打印在命令行有助于调试用,正式打包的时候就加上-w,-F如果不加会生成一个文件夹的好多个文件,加上之后会生成一个文件,而且大小也小了很多。
1031 0