Windows フォーム プロジェクトの自動 Web ベース ソフトウェア更新を処理するための適切なソリューションは何ですか? Microsoft のワンクリックは知っていますが、現時点では興味がありません。
8 に答える
ClickOnce はクッキー カッターに適していますが、セキュリティに関していくつかの制限があります (つまり、デスクトップ アイコンを作成できない、COM にアクセスできないなど)。
MSI を使用してアプリケーションをインストールしていると仮定します。WIX ( http://wix.sourceforge.net/ ) を使用してパッチ (.msp) を作成します。最小特権ユーザー アカウント (LUA) の Vista へのパッチ適用を検討する必要があります。そうしないと、UAC によって問題が発生するからです。
次に、アプリケーションは次のことを行います。
- HTTP 経由で新しいバージョンを確認する
- MSP をダウンロードします (UAC があるため、Vista でどこに DL するかに注意してください)。
- Shim exe を開始します。
- アプリが閉じるのを待ちます
- msp を起動します (非対話モードで)
- アプリを再起動します
これはすべて、XP と Vista の両方で、ユーザーの操作なしで舞台裏で自動的に行われます。
これから始めるのに適した場所であり、WIX では一般的に次のとおりです。
http://www.tramontana.co.hu/wix/index.php (レッスン 4 はアップデートにあります)
スパム行為にならないように、弊社では自動更新ソリューションを提供しています。3つの部分があります:
- C# で記述されたアップデーターであるオープンソースの wyUpdate。
- 無料のAutomaticUpdater コントロール
- wyBuild は、パッチのビルドとバージョンの管理に使用されます
wyUpdate は、Vista/Windows 7 UAC の問題のすべてと、複雑なソフトウェアを更新しようとするときに必然的に発生するすべてのファイル許可の問題を処理します。
私たちは一度に自分たちで書いた... それは良い考えではありませんでした. 多くの場合、ClickOnce を使用できます。実際にAutoUpdate+というおすすめできる製品を使っています。特に特別な機能は、UAC ポップアップの問題を回避できることです。
それは、必要な更新プロセスの複雑さに大きく依存します。
単純なニーズを持つクライアントが数人いて、それを処理する独自のプロセス設定を作成しました。約 3 時間の開発で、すべてのニーズを満たす完全に機能するソリューションが完成しました。
マイクロソフトのワンクリック? ClickOnceのことですか?一度クリックして勝つフォームはとてもいいです。展開は高速で、すべての更新プロセスは自動的に処理されます。
しかし、ClickOnceはあなたが持つことができる最高のものであり、ユーザーが新しいバージョンをダウンロードする必要があるかどうか、古いバージョンを使用する必要があるかどうか、バージョンを戻す必要があるかどうかを選択できます...
いつでも独自のソリューションを構築したり、Web アドレスで XML 設定ファイルのバージョン番号を確認したり、現在のものよりも新しい場合は、新しいバージョンをダウンロードするようにユーザーを変更したりできます。たとえば...
これは、WinForms および WPF アプリに対する特定のニーズに対応するために私が作成したオープンソース ソリューションです。一般的な考え方は、可能な限り低いオーバーヘッドで最大の柔軟性を持つことです。
したがって、統合は非常に簡単で、ライブラリは同期操作を含め、ほとんどすべてを実行します。また、非常に柔軟で、どのタスクをどのような条件で実行するかを決定できます - ルールを作成します (または既存のものを使用します)。最後に重要なこととして、あらゆる更新ソース(Web、BitTorrent など) とあらゆるフィード フォーマットのサポートがあります。
コールド アップデート (アプリケーションの再起動が必要) もサポートされており、タスクに「ホット スワップ」が指定されていない限り、自動的に行われます。
これは、サイズが 70kb 未満の 1 つの DLL に要約されます。
コードはhttp://github.com/synhershko/NAppUpdateにあります(Apache 2.0 ライセンスの下でライセンスされています)
clicktwice という名前も聞いたことがあります :+> WIX ソリューションは、私が興味を持っていたものです。この手法を使用するためのサンプル アプリケーション (ソース付き) はありますか?