Имеется mixed-mode .NET сборка. Мне не важен нативный код, и я хочу скопировать IL код в новую сборку без него (нативного кода) с помощью Mono.Cecil.
Вот мой код:
ModuleDefinition module = ModuleDefinition.ReadModule(fileName);
var name = new AssemblyNameDefinition(module.Assembly.FullName, new Version(1, 0, 0, 0));
var asm = AssemblyDefinition.CreateAssembly(name, "greeter.exe", ModuleKind.Windows);
foreach (TypeDefinition type in module.Types)
{
asm.MainModule.Types.Add(type);
foreach (MethodDefinition method in type.Methods)
{
type.Methods.Add(method);
}
}
asm.EntryPoint = module.Assembly.EntryPoint;
asm.Write(saveFileDialog1.FileName);
Но он выкидывает исключение: Type already attached. Что я делаю не так? Может есть какое-то уже готовое решение?