1

Net 4.0 アプリケーションの DLL を Reflexil で変更しようとしています。ディレクトリは次のようになります。

Main.exe
SomeOther.exe
Lib1.dll
Lib2.dll
Lib3.dll 
...

今、Reflector 7.5.3.8 Trail と Reflexil 1.5 を使用して、これらのファイルのいずれかの IL コードを変更しようとしています。たとえば、Main.exe の Main() メソッドからすべてのコードを削除し (メイン メソッド、これについては確信があります)、ret だけを残します。変更を保存した後、まだ効果が見られません。プログラムは通常どおりに起動します。

問題は、そのファイルのキャッシュされたバージョンがまだどこかにあることだと思います。どうすればその問題を解決できますか?

DLL の IL コードを変更するにはどうすればよいですか?

4

1 に答える 1

2

何時間もの作業の後、私はついに問題を見つけました。

インストール時に、プログラムによって NativeImages が生成されましたが、これまでのところ異常はありません。問題は、それでした

ngen uninstall Lib1.dll

また

ngen uninstall Main.exe

ネイティブ イメージをアンインストールしませんでした。なんで?私は知りませんでした...私は試しました

ngen display Lib1.dll

そしてそれは言った、そのようなアセンブリはありません。偶然にも、検索結果でネイティブ イメージ キャッシュ全体を一覧表示しようとしました。

ngen display | find "Lib1"

それは私に、それがまだそこにあることを示しました(なぜそれ?!)。今回はLib1.dllのアンインストールではなく、実行によるアンインストールを試みました

ngen uninstall Lib1  (without dll)

それは魅力のように機能し、問題を教えてくれました。ネイティブ イメージ キャッシュ内の他のアセンブリがまだ依存しているため、アンインストールしませんでした。最初にすべての依存アセンブリをアンインストールする必要がありましたが、その後、自動的に削除されました。

これが何らかの助けになることを願っています。一般的に、ファイルとアセンブリを区別するのは本当に混乱すると思います...

于 2012-05-28T05:59:28.890 に答える