2017-03-01 7 views
2

これで、ソースコードの編集ができなくなり、機密性があるため、アプリケーション/コードを共有できなくなります。私はこれを単純なものと信じる前にこれをしているので、私は見落としています。ソースコードを持たずにILを編集すると、実行時の変更が反映されない

私は過去にこれを行っているとの唯一の違いは、これは4.5と最新のC#コンパイラなどここで

を使用して、新しいビルドがシナリオだということです。

私はアプリを開き、読むことができます適切に編集してILを編集します。実際、リフレクションデスクトップ(最新)、Telerik(私の通常の行き先)、更新されたreflexilを使用して問題なく編集することができます。また、最新のnightly 3.0.1を試しました。

私は心配していたと思っていました。古いGreyDragonを使ってそれを開いたり、ILを編集したり、exeアセンブリを保存したり、ILを直接エントリポイントのメインに保存したりしました。すべてのこれらのツールで、以前に編集して保存したアセンブリEXEを再オープンすると、デコンパイルされたC#と対応するIL命令の両方で、変更が正しく表示されます。

私が指摘できるのは、より新しいターゲットのドットネットバージョンと新しいC#コンパイラ/バージョンでコンパイルされたものだけです。

最新のバージョンのC#Rosylynなどが、ILの編集方法(IL編集を行うことができるほぼすべてのツール)が、現在作業していたほとんどの場合、2次命令のバックアップテーブル実行されていない元の未編集のコピーを保持するなど?

または、アセンブリ再生の特定の「設定」がこの現象を引き起こす可能性がありますか?

より細かい詳細を記述しようとする前に、私が欠落している可能性がある基本的な障害の大きな部分から始めましょう。

もう一度申し訳ありませんが、実際のコードを共有することはできませんが、本当の教祖は何が起こっているのかを知り、アイデアを持っていればうれしいです。ありがとう!

+0

これらのアセンブリはGACにありますか? –

+0

機密コードを共有する必要はありませんが、この質問の目的で作成したコードはいつでも共有できます。また...あなたの質問は何ですか?あなたが簡単に何をしようとしているのかを説明するコードを追加したくないなら、太字のテキストを追加してこの壁を分けることができます。 –

+0

私は単純化した例を次のように推測します: "TEST"というメッセージボックスをポップするだけで、何もしないためにILコードをvoid mainに追加します。いったん編集すれば、すべてのexeが実行されるはずですが、古いコードのバックアップがどこかにあるかのように編集を無視し、GACにないEXEだけです。繰り返しますが、編集したexeをすべてILを編集できる4つのツールのうちの1つにドラッグして戻すと、messagebox呼び出しとIL用の新しいC#decompiled命令と、実際に実行されるorgコードのNONEが表示されます。 –

答えて

0

私自身の回答を投稿すると、これを逃したと信じられません。

答えがGACのアセンブリとしてインストールされていないにもかかわらず、このアプリケーションの動作が変更されました。何らかの理由でプロセスがNGEN.EXEを実行してNIネイティブイメージをネイティブイメージにコンパイルしてインストールしました - それは問題のfrigginマシンコードのキャッシュバージョンを含んでいます - まさに私の勇気が起きていると言いました。私はちょうど "バックアップコピー"を見つける必要がありました。

関連する問題