今天做安装打包程序研究,之前同事将很多零散的文件发布成一个安装文件夹给用户,这样体验不好,我希望将所有文件打包成一个.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程序的安装包,就方便了!