39

Mac には、プログラムが自動更新のチェック/インストール機能を実装するために使用できるSparkleという非常に優れたライブラリがあります。

.NET に類似したものはありますか? それとも普通のWin32?

4

12 に答える 12

28

ClickOnceには独自のセキュリティ制限があります (当然のことです)。Windows アプリケーションの完全な機能と制御が必要な場合は、.NET アプリケーション アップデーターコンポーネントを使用してください。これは魔法のように機能し、Microsoft の内部で .NET ベースのゲームに使用されたこともあります (ゲーム名は覚えていません)。

于 2009-03-27T22:36:12.127 に答える
15

まず、以下を含む完全な更新ソリューションを提供することから始めましょう。

wyUpdate は、Vista/Windows 7 UAC の問題のすべてと、複雑なソフトウェアを更新しようとするときに必然的に発生するすべてのファイル許可の問題を処理します。

そうは言っても、独自のアップデーターを構築したい場合は、次のヒントを参考にしてください。

独自のアップデーターの構築

開始するのに適した場所は、前述のwyUpdate C# ソース コードです。あなたはそれを共食いし、あなた自身の目的のためにそれを使うことができます. 含まれているアルゴリズムの一部:

  • 完全な Windows Vista / Windows 7 UAC サポート
  • 制限されたユーザーが認証情報を持っているかどうかを確認して更新する機能
  • 不安定な企業イナーネットのサポート。(企業で働いたことがある場合、これは本当の問題です)。
  • ファイルの迅速な抽出、パッチ適用、およびインストール。
  • レジストリのサポート。
  • エラーまたはユーザーによるキャンセル時にファイルとレジストリをロールバックする
  • 自己更新 (ファイルを残さない)

ファイル仕様もここにあります。

自動更新

自動であることが要件であるため、AutomaticUpdater コントロールを使用して自動化を行う方法を説明します。

名前付きパイプを使用して、スタンドアロン アップデーター (wyUpdate) とプログラムのフォームにある自動アップデーター コントロールとの間で通信します。wyUpdate は進行状況を Automatic Updater に報告し、Automatic Updater は wyUpdate に進行状況のキャンセル、ダウンロードの開始、抽出の開始などを指示できます。

これにより、アップデーターがアプリケーションから分離されます。

実際、私たちが使用している正確な名前付きパイプ C# コードは、少し前に書いた記事に含まれています: Multi-process C# app like Google Chrome

于 2010-02-23T21:03:46.333 に答える
10

ClickOnceは私の好みの方法です。いぼがいくつかありますが、Visual Studio に付属しており、かなりうまく機能します。

于 2009-03-27T22:17:15.557 に答える
6

ClickOnce は頻繁に使用されますが、私が大規模なアプリケーションに対して行ったことを実行して、これらを試すことができます。

ロジックを少しいじって、より優れた XML 更新ファイルと思われるものを作成しました。現在、クライアントを更新する必要がある場合は、新しい EXE ファイルまたは DLL ファイルを投稿し、パブリック XML ファイルに正しいバージョンを設定するだけです。私のアプリケーションは、それが古い場合は新しいバージョンを検出し、それ自体を更新します。Windows Vistaでこれを実行している場合は、Program Files に書き込むことができるように管理者権限を要求する必要があります (そこにインストールする場合)。

C#/VB.NET Converterを使用して、これを C# に簡単に変換することもできます。

于 2009-03-27T22:34:56.577 に答える
6

私はこれを行うプロセスを経て、NetSparkleを使用しました。

以前のバージョンを上書きするMSIインストーラーを使用したWindows フォームアプリケーションで宣伝どおりに機能しました。私もそれを見つけてとてもうれしく思います - 私は自分自身を転がそうとしていた. 本当に単純な .NET アプリケーションを作成しているのは私だけでしょうか? 私が見たもののほとんどは、完全にやり過ぎのように思えました。

于 2011-01-05T10:01:33.607 に答える
5

私はまだ NetSparkle を試していません (後で試します) が、それはあなたが探しているもののようです。

NetSparkleは、Windows、Mac、または Linux 上の .NET 開発者向けの使いやすいソフトウェア更新フレームワークです。Cocoa開発者向けのSparkleプロジェクトとWinSparkleプロジェクト ( Win32ポート)に触発されました

于 2011-02-22T10:18:50.137 に答える
3

WyBuildは Sparkle の優れた代替手段だと思います)

于 2009-08-07T19:46:36.833 に答える
2

アップデータと呼ばれる本当に素晴らしいユーティリティがあります。CまたはC++で書かれているようです。XMLファイルを構成して本番サーバーにロードできた後、アップデーターを実行してXMLファイルのバージョンを確認し、Nullsoft ScriptableInstallSystemを使用して作成した新しいアップデートインストールパッケージをダウンロードできます。 (NSIS)。

于 2009-03-27T23:27:08.057 に答える
2

これは、WinForms および WPF アプリに対する特定のニーズに対応するために私が作成したオープンソース ソリューションです。一般的な考え方は、可能な限り低いオーバーヘッドで最大の柔軟性を持つことです。

したがって、統合は非常に簡単で、ライブラリは同期操作を含め、ほとんどすべてを実行します。また、非常に柔軟で、どのタスクをどのような条件で実行するかを決定できます - ルールを作成します (または既存のものを使用します)。最後になりましたが、すべての更新ソース(Web、BitTorrent など) とフィード形式のサポートです。実装されていないものはすべて、自分で作成できます。

コールド アップデート (アプリケーションの再起動が必要) もサポートされており、タスクに「ホット スワップ」が指定されていない限り、自動的に実行されます。

これは、サイズが 70kb 未満の 1 つの DLL に要約されます。

詳細については、http://www.code972.com/blog/2010/08/nappupdate-application-auto-update-framework-for-dotnet/を参照してください。

コードはhttp://github.com/synhershko/NAppUpdateにあります(Apache 2.0 ライセンスの下でライセンスされています)

時間ができたらさらに拡張する予定ですが、正直なところ、現在サポートされていないものについては、自分ですばやく拡張できるはずです。

于 2010-08-24T22:35:29.827 に答える
-1

.Net クライアント アプリケーションの更新については、AppLife Updateを参照してください。非常に柔軟で、拡張可能で、カスタマイズ可能です。

免責事項 - 私は AppLife Update に関係しています。

于 2009-04-27T15:38:18.377 に答える