2010-10-01 90 views
0

我想將程序集保存到使用System.Reflection.Emit.AssemblyBuilder的文件,但它不工作。C#在內存彙編到DLL文件

我有一個變量來保存運行完美的程序集,當我加載和運行它。

System.Reflection.Assembly dll = GetAssembly(resource); 

有沒有人能幫我把這個「dll」保存到像「name.dll」這樣的文件中?

+1

哪個GetAssembly方法是? – 2010-10-01 05:59:16

+0

這是私人功能。它返回正確的程序集。我不知道如何保存這個程序集。 – Neutralizer 2010-10-01 06:04:19

+0

那麼私人方法清楚地知道如何獲取數據...所以爲什麼不使用相同的邏輯? (將其解壓縮成一個常用方法。) – 2010-10-01 06:08:12

回答

2

在評論中,您曾說私人GetAssembly方法從資源文件中提取數據並從中構建程序集。假設從資源文件獲取的「字節」實際上只是程序集的字節,獲取文件的最簡單方法是從資源文件中獲取相同的字節,並調用File.WriteAllBytes。你不需要通過一個Assembly對象,這樣做會使工作更難。

0

您的AssemblyBuilderAccess標誌必須爲RunAndSaveSave才能正常工作。