問題タブ [ildasm]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - プロジェクト展開エラーでの XAML 解析例外
もちろん、開発システムを含む特定のプラットフォームとシステムで正常に動作する WPF アプリケーションがありますが、デプロイ時にすべてではなく一部のプラットフォームで問題が発生します。もちろん、これは依存関係に関する問題のように聞こえますが、何を/どれを追跡するかはわかりません。WERInternalMetadata.xml の問題の署名は次のことを示しています。
パラメータ 7 から 105 を探すために ILDASM を使用すると、次のようになります。
私はこれの頭や尾を作る方法がわかりません...私はどんな助けにも非常に感謝しています!
ildasm - Ildasm Ctrl + M (メタデータ)
CarLibrary.dll
で名前を付けて作成したアセンブリを開きましたが、ショートカット+を使用して (またはメイン メニューから選択して)ildasm.exe
メタデータを開こうとすると、プログラムが起動せずに閉じられます。CTRLM
これは、たとえば を開こうとすると機能しますmscorlib.dll
。
なぜそれが起こっているのですか?MS VS .NET 2013 を使用しています。
c# - null 許容型に基づくオブジェクトは、オブジェクトが null でない場合にのみボックス化されます
C#
簡単なプログラム を作成しました:
MSDNによると:
null 許容型に基づくオブジェクトは、オブジェクトが null でない場合にのみボックス化されます。HasValue が false の場合、オブジェクト参照はboxing ではなくnull に割り当てられます。
実行可能ファイルを試してみたところ、コードにboxメソッドが呼び出されていることがILDASM
わかりました。IL
私の質問は:なぜそれが呼ばれたのですか?たぶん私は何か間違ったことをしている、または何かを誤解していますか?
cil - ILDASM がメソッドを正しく逆アセンブルしない
IL レベルで dll をデバッグする必要があり、http://blogs.msdn.com/b/jmstall/archive/2004/10/03/237137.aspxを読んで、il(d )アスム。
逆アセンブリは実行されますが、再アセンブリは失敗します
次に、ILSpy で DLL を開き、生成された IL ファイルをメモ帳で開きます。
ILSpy:
ILDASM (行 71204 は IL_0016):
stloc.s へのインデックスが欠落しているようです。
ILDasm ヘルプ -> 情報は、バージョン 4.0.30319.0 を示しています。
c# - 最適化されていない MSIL の余分な NOP と分岐
次のコードをデバッグとしてコンパイルすると...
...一見役に立たない命令を含む奇妙なバイトコードがコンパイラによって生成されます。たとえば、プロパティのゲッター用に生成されるものを参照してくださいMyProperty
( で逆アセンブルildasm.exe
):
具体的には、そこで何nop
をしているのIL_0000
ですか?そして、なぜコンパイラは文字通りどこからともなくこの役に立たないbr.s
命令を生成するのでしょうか? IL_0008
一時的なローカル変数を作成するのはなぜCS$1$0000
ですか?
リリース構成の場合、命令セットは期待どおりに生成されます。
編集
なぜブランチと一時的なローカル変数が別の質問にあるのかという質問に対する答えを見つけたと思います。おそらく、デバッグ中にブレークポイントを簡単に設定するためです。したがって、残っている問題は、nop
命令が生成される理由です。