問題タブ [auto-update]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
3 に答える
107 参照

ajax - Ajax、更新の確認、Same_origin_policy

このHTMLマニュアルは、アプリケーションとともにインストールされます。このマニュアルは頻繁に(週に3〜5回)更新されます。マニュアルが古くなっている場合は、ユーザーに警告したいと思います。

私が最初に考えたのは、Webサーバーにホットリンクされたイメージを作成することでした。これを使用して、「更新」イメージまたは「更新なし」イメージを使用およびサーバーするバージョンを確認できます。ただし、ユーザーがインターネットに接続していない場合、画像は壊れた画像として表示されます。そして、私はそれを望んでいません。

次に、Ajaxを少し使用してWebサーバーからリクエストを行うことを検討しました。ユーザーがインターネット接続を持っていなかった場合、Javascriptは正常に失敗する可能性があります。しかし、私は問題にぶつかりました。マニュアルはユーザーのPCにローカルファイルとして保存されているため、Webサーバーからのリクエストを行うクロスドメインリクエスト(同一生成元ポリシー)と見なされます。

他に何を試すべきかについての提案はありますか?

スタートメニューにオンライン版のマニュアルへのハイパーリンクを含めることはできません。多くのユーザーがインターネットに接続できないためです。

0 投票する
2 に答える
808 参照

auto-update - 製品を更新する最良の方法

背景:

大規模なデータベースといくつかのプログラムで構成される複雑なシステムを提供します。ほとんどは C# で記述されていますが、一部のレガシー アプリケーションは MFC で実行されています。

私たちが提供するもののほとんどは単一のサーバー (SQL サーバーと SQL Management Studio 2005 を実行) 上で実行されますが、いくつかのアプリケーションは多数のクライアントのコンピューターで実行できます。データベースを更新した後、データベースの変更により古いソフトウェアが壊れる可能性があるため、これを更新するのは本当に面倒です。サーバー ソフトウェアを手動で更新することは 1 つの方法ですが、すべてのクライアント ソフトウェアも確実に機能するようにすることは事実上不可能であり、時間の経過とともに悪化するだけです。

製品全体を更新できる更新サービスを作成します-データベースを更新し、サービスとアプリケーションを再インストールします。(ただし、実際に変更されたプログラム/ファイル/テーブルなどのみを更新する必要があります。利用可能な更新があるたびに製品全体をダウンロードすることはオプションではありません。また、一部のコンピューターには、利用可能なプログラムのサブセットのみがインストールされている場合があります)

まず第一に、これを行うための良い方法はすでにありますか? 既に存在するデータベースを更新できる ClickOnce に似たものがある場合は、むしろそれを使用したいと思います。

そうでない場合、更新に関するベスト プラクティスは何ですか? すべての資料を高く評価します。

ユーザー入力なしで、更新が送信された後、できるだけ早くサーバーにいくつかの更新をインストールする必要があります。これには、Windows サービス (常に実行されている) とデータベースの変更が含まれます。これらの変更が行われた後、最新ではないソフトウェアが変更された部分にアクセスしたり、まったく実行されたりするのを防ぐ必要があります。

アドバイスをいただければ幸いです。そのようなシステムを作成する必要がある場合は、正しく作成したいと思います。

0 投票する
5 に答える
5206 参照

client-side - ネットワーク環境でデスクトップ アプリケーションを自己更新するためのベスト プラクティス

この質問に対する可能な答えをグーグルとSOで検索しましたが、その場所に散らばっている小さな情報しか見つけることができず、そのほとんどは個人的な意見のようです.

この質問が主観的であると考えられることは承知していますが、私は個人的な意見を求めているのではなく、理由のある事実 (過去の経験など) や、ベスト プラクティスを説明しているブログ/ウィキへの単一のリンク (これは私が正直に言いたいこと)。私が探していないのは、これを機能させる方法です。自己更新デスクトップアプリケーションを作成する方法を知っています。

自己更新デスクトップ アプリケーションを作成するためのベスト プラクティスについて知りたいです。私が特に興味を持っているベスト プラクティスの種類は次のとおりです。

  • クライアント ソフトウェアが古くなっているが、他のバージョンのソフトウェアまたはデータベース自体と通信しようとしても壊れない場合、更新を強制しますか? もしそうなら、この重大な変更をどのように意味しますか?
  • どのくらいの頻度で更新を確認する必要がありますか? 毎週/毎日/毎時、正確にはその理由は?
  • UI の観点から、更新をユーザーに表示するか、バックグラウンドで実行する必要がありますか?
  • メジャー アップデートでない場合、利用可能なアップデートがあることをユーザーに通知する必要がありますか? (たとえば、実際には 1 人のユーザーのみが必要とするアプリケーションのリモート部分にある 1 つのボタンを修正する)
  • アプリケーションにパッチを当てる必要がありますか、それともアプリケーション全体を最初から Macintosh スタイルから再ダウンロードしますか?
  • ユーザーが中央の場所から更新できるようにするか、指定したアプリケーションを介した更新のみを許可する必要がありますか? (クローズド ビジネス アプリケーションの場合)。

確かに、このことについていくつかの書かれた規則/提案がありますか? 多くのアプリケーションで最も厄介なことの 1 つは更新です。これは、「時代遅れ」と「ユーザーが直面している」ことの間の適切なバランスを見つけるのが難しいためです。

これが単一のクライアント用に .net C# で記述され、更新サーバーへの常時接続が可能なマシンで実行されていると考えるのに役立つ場合、これらのマシンはすべてアプリケーションを介して相互に通信し、すべてが中央データベース サーバーとも通信します。 .

0 投票する
1 に答える
289 参照

.net - 自動アップデーターでプログラム ファイルを置き換えるにはどうすればよいですか?

新しいバージョンが利用可能かどうかを確認するために、Web サイトをチェックするプログラムを開発しました。新しいバージョンが利用可能になると、ダウンロード プログラムが起動してファイルを取得し、そのフォルダ全体をソースの上にコピーして、新しいバージョンでプログラムを再起動します。

問題は、プログラムを 2 回目に実行したときに、ソフトウェアが実際には更新されていないことです。つまり、ダウンロードしてコピーしたばかりのファイルが元のバージョンに戻っています。

それを防ぐ方法はありますか?通常、.NET 2008 の Setup および Deployment プロジェクトを使用して、アプリケーション インストーラーをビルドします。

0 投票する
3 に答える
2208 参照

windows - Win32 アプリケーションの自動更新ソリューション?

Win32 サービス、通知アイコン アプリケーション、および関連する DLL ファイルで構成されるデスクトップ製品があります。

私はそれを自動更新することを検討する任務を負っています。独自のアップデーターを作成することもできますが、その前に、他に何があるか見てみたいと思います。使用できる商用システム (Windows Update に似ていると思います) はありますか? 確かに、InstallShield はこのようなものを提供していたはずですが、今は見つけられません。私の記憶が間違っている可能性もあります。

これは Win32 アプリケーション (およびサービス) であるため、ClickOnce は使用できません (または、そうでしょうか?)。

0 投票する
2 に答える
568 参照

delphi - アップデートを確認

私はLazarusでアプリケーションを開発しています。これは、すべての.xmlファイルに新しいバージョンのXMLファイルがあるかどうかを確認する必要がありますForm_Create

これどうやってするの?

0 投票する
2 に答える
140 参照

javascript - Javascript の更新

Javascriptで更新時計を作成しようとしています。実際にスパンを更新していないことを除いて、デバッガーをステップ実行すると、すべてが正しく機能しています。理由はありますか?

0 投票する
1 に答える
440 参照

vb.net - 「My」名前空間が使用できないのはなぜですか?

Winformアプリは、Main.exeとLauncher.exeで構成されています。Launcherアプリの目的は、Main.exeの更新されたバージョンを確認することです。

更新が見つからない場合は、System.Diagnostics.Process.Startを使用してMain.exeを起動します。

更新が見つかった場合は、新しいMain.exeを所定の位置にコピーし、同じ方法でMain.exeを起動します(この場合、Main.exeの新しいコピーになります)。

Process.Startコードは次のとおりです。

このコードは、更新があったかどうかに関係なく実行され、常にMain.exeを正常に起動します。

ただし、Main.exeを初めて実行する場合(つまり、更新後)は、My.SettingsやMy.Computer.FileSystemなどのMy名前空間を参照するすべての行でエラーが発生します。

たとえば、この行はエラーを引き起こします:

エラーは次のとおりです。

System.IO.DirectoryNotFoundException:特別なディレクトリ「デスクトップ」が見つかりませんでした。Microsoft.VisualBasic.FileIO.SpecialDirectories.GetDirectoryPath(String Directory、String DirectoryNameResID)、Microsoft.VisualBasic.FileIO.SpecialDirectories.get_Desktop()、Microsoft.VisualBasic.MyServices.SpecialDirectoriesProxy.get_Desktop()

ただし、この例はデスクトップを参照していますが、SpecialDirectoriesが見つからないことを忘れないでください。デスクトップに限定されません。

ただし、初めて実行する場合(つまり、更新直後)のみです。その後は正常に動作します。

ファイルシステムの問題、ロック、またはスレッドを処理するために、プロセスがより見事に失敗した場合は、より理解しやすくなります。しかし、なぜMy名前空間に関するこの「マイナーな」問題があるのでしょうか。

0 投票する
13 に答える
22169 参照

qt - Qt クロスプラットフォーム アプリケーションで自動更新を有効にするにはどうすればよいですか?

私は、ユーザーの手間をかけずに自分自身を更新できるアプリケーションが大好きです (考えてみてください: Mac 用のSparkleフレームワーク)。OS の詳細を気にすることなく、Qt アプリケーションでこれを行うために利用できるコード/ライブラリはありますか?

少なくとも、Windows、Mac、およびユーザー所有の Linux バイナリの場合。

Sparkle を Mac バージョンに統合し、Linux の場合に何かをコーディングし (スタンドアロンのユーザー所有のバイナリのみ。プログラムがパッケージ化されている場合は、ディストリビューションのパッケージ化をいじることはありません)、助けてくれる人を見つけることができます。 Windows側ですが、それはひどく苦痛です。

0 投票する
1 に答える
1842 参照

asp.net-mvc - Web アプリの自動更新

定期的に更新する必要がある小さな Web アプリ (Mvc) があります (ftp またはその他のアクセスなし)。

アプリの「スーパー ウルトラ メガ管理者」ページから直接更新プロセスをスピンアップできるようにしてください。

これが最善のセキュリティ アプローチではないことはわかっていますが、私はそれを受け入れることができます。実際には必要ないのに、新しいバージョンに対して継続的に ping を実行する永続的なサービスは避けたいと考えています。

私が今考えているのは、保護されたWebページから次のように呼び出すことができる正しい書き込み許可資格情報を持つWindowsサービスを用意することです:

  • iis サービスを停止します (必須ではありません)。
  • セキュリティで保護された URL を介してアプリの最新バージョンをダウンロードします (zip ファイル)
  • サーバー上の圧縮された古い Web アプリをディレクトリ (c:\backups\v1_01102010.zip) にバックアップします。
  • ダウンロードしたzipファイルをWebアプリのディレクトリに解凍します
  • IISを再起動します
  • (最終的にプロセスを元に戻すことができます)

このようなものはすでに存在しますか?

この単純なプロセスには複雑すぎると思われる、主に winform またはデスクトップ アプリケーションを対象とした .net の自動アップデーターを多数見てきました。

レジストリを作成または変更する必要はありませんが、ユーザーの操作なしで zip の抽出を自動化するだけです。