2013-01-21 3 views
6

アプリケーション実行時にコードをダウンロードして実行/挿入することはできますか?コードをダウンロードしてオンザフライで実行

アップデーターを使用せずに私の.exeを小さくしてup2dateにしたいと考えています。

Googleをしばらく検索していましたが、Antivirを常にトリガーする他の.exeをダウンロードするだけで何かを見つけることができませんでした。

+2

いいえ。新しいパッケージやDLLを送信して動的に読み込むことはできますが、大部分のコードをダウンロードして実行することはできません。この[プラグインに関する類似の質問](http://stackoverflow.com/q/1560878/62576)が役に立ちます。 –

+0

更新するのはどのようなコードですか?それがビジネスロジック(UIコードとは対照的)であれば、何らかの形のWebサービスを使用するデザインを考慮する必要があります。 –

+0

アップデータはコードをダウンロードし、再利用するために保存します。アップデータを使いたくないのにコードをダウンロードしたい場合は、プログラムを実行するたびにコードを新たにダウンロードする必要があります。ユーザーはデスクトッププログラムでそのようなことを好まないでしょう。毎回コードをダウンロードするつもりならば、ウェブアプリを書くだけでよく、そのために使用することでより良い期待が得られます。 –

答えて

7

ビジネスロジックはdllに、exeファイルには更新ロジックだけを置いてください。アプリケーションを起動するたびに、更新をチェックする必要があります。必要な場合は、新しいdllをダウンロードし、その機能を更新します。

dllを動的にロードするようにすると、アップデートが実行されたときにアプリケーションを再起動する必要はありません。

exe内のプロセスは次のようになります。 1.小さなexeを起動します 2.アップデートを確認します。必要に応じて、dll(s)の特定の場所にdll(s)をダウンロードします。 3.特定の場所からdllをロードしてください

もちろん、それを扱いやすくするために、複数のインスタンスを許可しないでください。すでに起動していて別のインスタンスを開始すると別のケース処理する:あなたが更新しようとするが、あなたが上書きする必要があるファイルが使用中です...

4

exeを実行して他のプロセスのアドレス空間に注入する方法があります。しかし、確かにあなたのソフトウェアはヒューリスティックAVによってマルウェアとマークされます。

あなたがこのコンセプトに興味があるなら、ここではそのトリックを行うのはunitです。

+2

@ Arioch'Theはgrammar.stackexchange.comであることを知らなかった – opc0de

+1

stick.grammarexhange.org ;-) –

関連する問題