9

そのため、厳密に型指定する必要がある C# 2.0 で記述されたサード パーティの .dll があり、ソース コードにアクセスできません。.dll を逆アセンブルし、厳密な名前のキー ファイルを使用して再アセンブルする方法に関する記事をいくつか見つけました。

私が抱えている問題は、VS2010 がそれを 2.0 .dll (現在のアプリケーションのバージョン) ではなく .NET 4.0 .dll として再コンパイルすることです。「このアセンブリは、現在ロードされているランタイムよりも新しいランタイムによってビルドされており、ロードできません」というランタイム エラーが発生するため、プロジェクトに "新しい" dll を含めることはできません。dll に署名しないと、"アセンブリが厳密に型指定されていません" というメッセージが表示されます。エラー。

VS2010 ilasm.exe を使用して 2.0 フレームワークでこの .dll を再コンパイルする方法はありますか?

4

2 に答える 2

14

おそらく、Visual Studio 2010 コマンド プロンプトを使用しています。「ilasm.exe」と入力すると、C:\Windows\Microsoft.NET\Framework\v4.0.30319\ilasm.exe を実行する環境がセットアップされます。バージョンが間違っています。v2.0.50727\ilasm.exe が必要です。フルネームを入力します。または、vc\bin\vsvarsall.bat をコピーして編集します。

于 2011-05-07T01:52:35.210 に答える
1

いいえ、4.0 ilasm を使用して 2.0 にコンパイルすることはできません。2.0 フレームワーク ディレクトリの ilasm.exe を使用する必要があります。たとえばC:\WINDOWS\Microsoft.NET\Framework\v2.0.50727

これに必要なのはランタイムであり、SDK や VS 2005 / 2008 ではないことに注意してください。

于 2011-05-07T01:52:17.533 に答える