問題タブ [squirrel.windows]
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.
electron - ポータブル Electron アプリ
git electron に基づくアプリケーションがあります。(窓用)
このアプリを USB ディスクに移植できるようにする必要があります。また、このアプリに自動更新機能を持たせたいと考えています。
Grunt-electron-installer は更新メカニズムにsquirrel.windowsを使用します。Squirrel は CSIDL_LOCAL_APPDATA で SHGetFolderPath 関数を使用して、通常はC:\Users\Username\AppData\Local\$pkgNameであるインストール パスを決定します。
私の質問は;
- ポータブル Electron アプリの自動更新機能として使用するより良い方法はありますか?
- Enigma 仮想ボックスを仮想システムとして使用して、squirrel.windows パスの問題を解決できました。このオプションでは、仮想システムで CSIDL_LOCAL_APPDATA 変数を変更する方法が必要です。何か案が?
どんな助けでも本当に感謝しています。ありがとうございました
node.js - Electron 4 Windows -> electron-builder -> 自動更新: カスタム ソリューション
Electron を使用して Windows 用のアプリを作成しています。パッケージ化して配布するには、electron-builderを使用しています。Electron-builder は多くのパッケージに依存しており、自動更新にはSquirrel-windowsを使用します。
私は Windows で 3 日間自動更新と戦ってきましたが、最終的には問題がないように見える実用的なソリューションを思いつきました。
私が試して失敗したことの詳細については触れません。代わりに、私が思いついた解決策をここに投稿します。
私のシステムが故障する原因となる欠陥を指摘してくれるかどうかを確認するため、またはそれが本当に堅実な解決策である場合は、私のように苦労している人々を助けるために、皆さんと共有しています. この後者の理由から、必要以上のコードを投稿して、他の人の助けになることを願っています。
ロジックは次のとおりです。
- 現在の実行可能ファイルのパス内にサブフォルダー
fullupdate
が存在しない場合 (後で説明します)、オンライン サーバーに接続し、現在のアプリ バージョンを送信して更新があるかどうかを確認します。 - 更新がない場合は、何もしません。
- 更新がある場合は、によって生成されたインストーラー
json
をダウンロードできる URL を含む文字列を返すようにサーバーに指示します。注意: (サーバーコードは提供されていません) ではありません。.exe
electron-builder
.nupkg
:-)
- ファイルをダウンロードし、
fullupdate
アプリが現在保存されているローカル フォルダーのサブ フォルダー内に保存します。electron-builder
アプリを現在のユーザー フォルダーに保存するため、これは "安全" である必要があるAppData
ため、アクセス許可の問題は発生しません。 - ダウンロードの最後に、ダウンロードが正常に終了したことを確認するために
update
、フォルダー内に新しいファイルを作成します。fullupdate
ファイルの名前を変更することもできますが、私はこの方法を好みます。 - 次回アプリを開いたとき:
- フォルダー
fullupdate
が存在する場合は、ファイルupdate
が存在するかどうかを確認します。存在しない場合は、ダウンロードが完了していないため、フォルダーを削除しfullupdate
、リモート サーバーを呼び出して最初からやり直します。 - ファイル
update
が存在する場合は、.exe
ダウンロードしたファイルを起動し、true を返します。これにより、アプリがメイン ウィンドウを開くことができなくなります。すばらしいことに、アップデーターは に保存されている古いバージョンのアプリ全体を削除しAppData
(ローカル ユーザー データは残します)、新しいバージョンに置き換えます。このようにして、フォルダも取り除きますfullupdate
。
- フォルダー
今コード:
visual-studio - コマンド ラインで AssemblyInfo.cs から AssemblyVersion 番号を取得する
Jenkins でジョブを自動化して、ビジュアル スタジオ ソリューションを構築および展開しようとしています。Jenkins にプロジェクトをビルドしてもらうことができます。Squirrel パッケージをデプロイするプロジェクトのビルド後に Jenkins が実行するバッチ ファイルを作成しましたが、バッチ ファイルと Jenkins ジョブをパラメーター化しました。これは、ジョブを実行するたびにバージョン番号を手動で入力していることを意味します。必要なのは、プロジェクトからバージョン番号を抽出して、Squirrel バッチ ファイルのパラメーターとして使用できるようにすることです。
c# - すべてのスレッドが完了したかどうかを判断する方法 C#
バックグラウンドで (Squirrel.Windows 経由で) 自分自身を更新している WPF アプリケーションがあります。これは、次のコードによって行われます。
このコードはOnStartup()
This App.xaml.cs
is an Async and Await 呼び出しの中にあるため、バックグラウンドで実行されます。アプリケーションを閉じる前に、それが可能かどうかを知りたいのですが、開始されたこのスレッドがまだ実行されているかどうかを確認できます。そうであれば、アプリケーションを閉じることはできませんが、タスクバーからアイコンを非表示にしてアプリケーションを最小化したいです。終了しても更新できるので、アプリケーションを閉じたい...
誰かが私を正しい方向に向けてくれることを願っています。
更新: App.xaml.cs の OnStartup の完全なコードは次のとおりです。
私がやろうとしているのは、必要なすべてのファイルを自動的にダウンロードし、アプリケーションの再起動後にそれらを適用する更新があるかどうかを Squirrel に判断させることです。ただし、このアプリケーションは、このアプリケーションの更新を確認してインストール (解凍) する別のアプリケーションのスターターのようなものであるため、インストールが完了してインストールされたアプリケーションが開始されると、アプリケーションは自動的に閉じます。ただし、スターター アプリケーションがまだ更新中の場合、それを閉じて再起動することはできません。
windows - 一部のコンピューターで起動しない squirrel でパッケージ化された electron アプリをデバッグする方法
Squirrel パッケージャー/更新マネージャーを使用して Electron アプリを作成しました。Windows 64 ビットのみを対象として、バンドルのビルドに問題はありませんでした。
問題なく Macbook pro (Windows 7 x64 デュアル ブート) にインストールしました。64 ビットの Surface Pro 3 (Win 10) と別の Win 7 PC でもテストしました。すべて正常に動作します。
私はアプリを公開し、数百のダウンロードを獲得しました。ダウンロードした人の半分は動作しており、残りの半分は起動しません。プロセスが生成され、1 秒後に終了します。管理者で起動しようとしましたが、管理者ダイアログボックスも表示されません。コマンドラインから実行してみました
しかし、アウトは空です。これをデバッグするにはどうすればよいですか?
electron - リスの実サーバーからアプリを更新できません
そのため、electron アプリ用にリス ナッツ サーバー ( https://github.com/GitbookIO/nuts ) をセットアップしました。
update-available イベントは発生しません。
フィードの URL は次のように設定されています: https://nuts.mywebsite.com/update/platform/version
私の github リポジトリには 2 つのリリースがあり、最初のリリースがインストールされています。
github webhook をセットアップしたので、これはキャッシュの問題ではないことに注意してください。リリース ファイルはすべて、URL から手動でダウンロードできることを確認しました。
SquirrelSetup.log ファイルを確認したところ、更新を取得していないだけで、URL にアクセスしているようです。
2016-08-13 23:36:04> CheckForUpdateImpl: https://nuts.mywebsite.com/update/win32/0.0.1-alphaから RELEASES ファイルをダウンロードしています
2016-08-13 23:36:04> FileDownloader: ダウンロード URL: https://nuts.mywebsite.com/update/win32/0.0.1-alpha/RELEASES?id=MyApp&localVersion=0.0.1-alpha&arch=amd64
/api/versions の内容:
c# - クエリ文字列パラメーターを使用して、URL からカスタマイズされたセットアップをダウンロードします
セットアップファイルを作成したいWindowsサービスアプリを作りました。ユーザーがクエリ パラメーターを使用して Web サイトの URL を介してアプリケーションを要求する場合 (例: http://test.com/setup.exe?id=1212 )、現在の app.config キー値をそのクエリ パラメーター値に変更する必要があります。
また、新しいリリースの準備ができたら、このアプリケーションを自動的に更新する必要があります。したがって、Windows用のClickOnceまたはsquirrelはオプションかもしれませんが、上記のタスクを達成する方法が見つからなかったためです。
次の質問は少し似ていますが、この問題を解決しません: * ClickOnce アプリケーションでクエリ文字列情報を取得するにはどうすればよいですか? * ClickOnce: クエリ文字列の値を *インストーラーを介して * アプリに渡すにはどうすればよいですか?
どうすればこれを達成できますか?
build - Electron アプリ: リス インストール イベントの制御
Electron アプリをビルドし、アプリを electron-packager でパックし、windows-installer でインストーラーをビルドしました。
Todo: アプリのインストール中にいくつかのコマンドを実行したいです。
私が試したこと:
コマンドを実行するコードをリス イベント内に配置します。
コマンドが正常に実行できれば、うまく機能します。ただし、コマンドが失敗した状況も処理する必要があります。その場合、アプリのインストールを停止したいのですが、できません。
誰にもアイデアはありますか?