首页 > 代码库 > 将文件从程序集中复原

将文件从程序集中复原

1、场景:

发到客户那的程序中使用的一个C++的库需要被替换,而该库在使用了前使用了md5进行检验防止其它伪装的库将其替换,因而替换时要算目标库的

md5,并把使用该库的另一个库也换掉。

2、涉及技术:

做一个离线补丁包去升级程序,并将库文件集成到其中,程序运行时再将其释放出来。

3、解决方法:

将目标库当成资源添加到工程中,并在需要时调用它写入文件

 1         private bool GetFileFromAssembly(String fileName, String targetFilePath) 2         { 3             byte[] bs = null; 4             String fileNameWithoutExtension = fileName.Substring(0, fileName.Length - 4); 5             MemoryStream ms = null; 6             FileStream fs = null; 7  8             try 9             {10                 bs = (byte[])Properties.Resources.ResourceManager.GetObject(fileNameWithoutExtension);11                 ms = new MemoryStream(bs);12                 fs = new FileStream(targetFilePath, FileMode.Create);13                 ms.WriteTo(fs);14             }15             catch (System.Exception ex)16             {17                 return false;18             }19             finally20             {21                 ms.Close();22                 fs.Close();23             }24             return true;25         }

4、相关程序:

 

将文件从程序集中复原