1. 程式人生 > 其它 >將ZIP檔案新增到程式集資原始檔然後在執行時解壓檔案

將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程式的安裝包,就方便了!