2011-09-08 4 views
1

は、DLLにexeファイルを変換するためにMono.Cecilを使用する方法、(エントリーポイントを削除し、アイコンやその他の不要なデータを削除する)Mono.Cecil .exeをdllに変換しますか?

AssemblyDefinition sourceAssembly = AssemblyDefinition.ReadAssembly(file); 
    sourceAssembly.EntryPoint = null; 
    sourceAssembly.Write(outputFile); 

はまったく影響を与えていないようですが..です

+3

ファイルの名前を変更していませんか? – svick

+0

私はかなり確信しています。事実、名前を変更する必要はありません....悲しいことに、私はそれが行われた場所でした。 ;( – kenny

+0

私はdllに変換したい理由は、スペースを節約するためにすべての不要なデータを削除したいということです! – Peter

答えて

5

は.dllファイルに管理.exeファイルを変換するには、使用することができます:セシル0.9.5のようまだ実装されていません

var file = "foo.exe"; 
var module = ModuleDefinition.ReadModule (file); 
module.Kind = ModuleKind.Dll; 
module.EntryPoint = null; 
module.Write (Path.ChangeExtension (file, ".dll")); 

一つのことは、あなたがプログラムでのWin32のアイコンを削除することができないということです。これはバグ#3です。

面白い事実:.netフレームワークのいくつかは、エントリポイントを持っています。

+0

win32リソースを削除する方法はありますか?私は可能な限り離れていきます。 – Peter

+1

@Petoj、実際にはCecilの現在のバージョンではありません。これはCecil 1.0より前に修正される予定です。 –

+0

私のケースではすべてのビット数がよくカウントされます:P、しかし確かに病気は1.0を待たなければなりませんこれはありがとうございます! – Peter

関連する問題