將文件從程序集中復原

一、場景:spa

發到客戶那的程序中使用的一個C++的庫須要被替換,而該庫在使用了前使用了md5進行檢驗防止其它假裝的庫將其替換,於是替換時要算目標庫的code

md5,並把使用該庫的另外一個庫也換掉。blog

二、涉及技術:md5

作一個離線補丁包去升級程序,並將庫文件集成到其中,程序運行時再將其釋放出來。資源

三、解決方法:get

將目標庫當成資源添加到工程中,並在須要時調用它寫入文件string

 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             finally
20             {
21                 ms.Close();
22                 fs.Close();
23             }
24             return true;
25         }

四、相關程序:it

相關文章
相關標籤/搜索