.exeファイルを作成し、すべてが桃色だとします。それがうまくいく素晴らしい。
ソフトウェアの新機能に取り組んでいて、すでに古いバージョンを持っている人が利用できるようにしたい場合、ソフトウェアに新しいバージョンを見つけてパッチを適用し、ビジネスを開始するにはどうすればよいですか。
この問題に頭を悩ませているようには見えません。
ありがとうございました。
EDIT:混乱して申し訳ありませんが、もっとコードごとの答えを意味していました。更新を許可する必要があるコードに何か特別なものはありますか?
たとえば、新しい機能を追加したい場合、すでにパッケージ化されている.exeに「メソッド」を追加するにはどうすればよいですか? :Sそれは私を回転させます。
Click Once Deployment を確認する必要があります。
ClickOnceは、最小限のユーザー操作でインストールおよび実行できる自己更新型のWindowsベースのアプリケーションを作成できるようにする展開テクノロジです。 VisualBasicおよびVisualC#を使用してプロジェクトを開発した場合、Visual Studioは、ClickOnceテクノロジで展開されたアプリケーションの公開と更新を完全にサポートします。
これにより、ダウンロード可能なセットアップexeが作成され、Webにロードされます。ユーザーはこれをその場で実行するか、ダウンロードして実行します。これにより、exeがコードでラップされ、Webの場所(選択した頻度で)の更新がチェックされます。見つかった場合は、ユーザーのためにインストールします。
これを有効にするために、コードに特別な変更を加える必要はありません。バージョン番号をインクリメントするだけではありません。通常どおりコードを変更および拡張し、コンパイル、ビルド、パッケージ化、アップロードするだけです。
ただし、ClickOnceは、管理アクセスを必要とするアプリケーションのインストールをサポートしていないことに注意してください。
ClickOnce配置を使用すると、管理者以外のユーザーがインストールして、アプリケーションに必要なコードアクセスセキュリティアクセス許可のみを付与できます。
したがって、アプリケーションを実行またはインストールするために管理者レベルのアクセスが必要な場合、それはあなたにとっての解決策ではありません。
通常、プロセスは次のとおりです。
もちろん、さまざまなバリエーションがありますが、これが基本的な方法です。
Windowsでは、少なくとも一部のソフトウェアは、常にオンになっているアップデータデーモンをインストールし、処理するソフトウェアの新しい更新をチェックします(たとえば、GoogleUpdater)。
1つのアイデア-チェックを行うローダーアプリケーションがあり、必要に応じて、メインアプリのexeを起動する前に更新しますか?
現在の.exeを変更しません。
新しいバージョンのファイルをダウンロードする別のプロセスを起動します。新しいバージョンが古いバージョンを置き換えます。変更は必要ありません。
Windowsの場合(通常、Windowsが実行中に.exeファイルをロックするため)
通常の方法は、アプリケーションがどこか(通常はインターネット上)で新しいバージョンを定期的にチェックすることです。これは、すべてのスタートアップまたは週に1回などに発生する可能性があります。
そこに、たとえば現在のバージョン番号を含むテキストファイルを簡単に置くことができます。インストールされているアプリケーションのバージョンよりも新しい場合は、アップデーターをダウンロードして(署名と署名の確認を忘れないでください)、新しいバージョンをインストールできます。
アプリが時々ウェブ経由でウェブサーバーにリクエストを送信するようにします。そのリクエストで、バージョン番号とインストーラーの最新バージョンへのリンクを含むファイルを返すようにします。そのバージョン番号が現在実行中のプログラムが考えているバージョン番号よりも大きい場合は、プログラムに新しいセットアップファイルをダウンロードして起動してもらいます。
コードの観点からは、IRunと呼ばれる単純なインターフェイスとIUpdatedと呼ばれる別のインターフェイスで構成されるアプローチが必要です。
public interface IRun()
{
public void Run();
}
public interface IUpdated()
{
public void Update();
}
これで、メインアプリケーションは、リフレクションを使用してライブラリをロードして「実行」し、実際のアプリケーションを起動します。
メインアプリケーションの実行可能ファイルは、次の手順を実行します。
Updateメソッドは、実際のアプリケーションを更新するために同じ手順を実行します。
最後に
もちろん、「自分でやりたい」という条件で、ClickOnceも実際には非常に優れた方法であり、おそらくより優れていますが、制御が少なくなります。メインアプリケーションの実行可能ファイルは、それ自体を更新する必要がないほど単純であるか、とにかく更新する必要があります。