私はElectronを使用してデスクトップアプリケーションを開発しています。レンダラープロセスをロックしないように、別のプロセスで特定のタスクを実行します。私はrequire('child_process').fork
と呼んでこれを達成します。これはすべてのプラットフォーム(linux、windows、osx)で期待どおりに動作します。しかし、私はelectron-builder
を使用してアプリケーションをパッケージ化し、生成されたNSISインストーラをインストールし、インストールされたバイナリを実行すると、フォークは失敗します。私はエラー出力を見るためにコマンドラインからこのバイナリを起動しましたが、それは役に立ちませんでした。このとき、子プロセスをフォークする親プロセスは、終了コード1でexit
コールバックを取得します。これは、NSISインストーラによってインストールされた実行可能ファイルにのみ問題があります。 electron-builder
を--dir
オプションで実行し、展開されたディレクトリから実行可能ファイルを実行すると正常に動作します。電子プロセスからのフォークは、インストールされた実行可能ファイルからのみWindows上で失敗します
これは、インストーラによって実行可能ファイルに設定されている権限と関係があると私に信じてくれました。私は権限を持って遊んだが、成功しなかった。どのようなアクセス許可がこの動作を許可/防止するのかはわかりません。
ASARパッケージングステップをスキップしてください。これは[電子ビルダーで切り替える]ことができます(https://github.com/electron-userland/electron-builder/wiki/Options#build)。 –
良い提案。私は試しましたが、助けにはなりません。 – Jayesh