0

私が書いていない .NET プログラムの動作を変更したい。ILSpy を使用して関連するソース コードを調べたところ、プログラムが静的フィールドを使用して変更したいデータを読み込んでいることがわかったので、静的フィールドに反映し、値を変更してから起動する簡単なプログラムを作成しました。プログラム。

問題は、起動時にプログラムが変更を無視しているように見えることです! 周りを見回したところ、静的変数は 内でのみ静的であることがわかりましたAppDomain。それが私の問題だと思います。私のランチャーアプリは「静的」変数をうまく変更していますが、への呼び出しProcess.Startは新しいAppDomainものを作成するため、私の変更は無関係になります。

次のいずれかの方法:

1) 静的変数を別の変数に変更する AppDomain

また

2) 問題を解決するための別のアプローチ?

4

1 に答える 1

1

ブートストラップすることでこれを達成できるはずだと思います。

同じタイプ (コンソール、WinForms など) の新しいアプリケーションを作成し、既存のアプリケーション .EXE を参照として新しいアプリケーションに追加し、既存のアプリケーションのエントリ ポイントを呼び出すと、そのまま実行されます。前にしました。

次に、リフレクションを通じて、不便なアクセス修飾子を回避して値を変更できるようにする必要があります。

まさにこれを行う短いテストアプリを作成したところ、問題なく動作しました。私はあなたのアプリを知らないので、どんなワニが雑草の中にいるのかわかりませんが、ブートストラップがここであなたに最高のチャンスを与えると思います.

于 2013-02-01T05:39:57.813 に答える