web-dev-qa-db-ja.com

Electronはelectron-builderを使用してMSIインストーラーを作成します

Electronビルダーを使用してWindows用の.exeインストーラーを作成できました。ドキュメントで指摘されているように、2つのpackage.jsonを作成します。

https://github.com/electron-userland/electron-builder

私は作業中の.exeを含むフォルダを作成しました enter image description here

"dist:win64": "./node_modules/.bin/build --platform win32 --Arch x64"

私のメインのpackage.jsonのビルドセクションは

"build": {
    "app-bundle-id": "org.test.mytest",
    "app-category-type": "public.app-category.graphics-design",
    "osx": {
      "contents": [
        {
          "x": 410,
          "y": 150,
          "type": "link",
          "path": "/Applications"
        },
        {
          "x": 130,
          "y": 150,
          "type": "file"
        }
      ]
    },
    "win": {
      "title": "My awesome app",
      "version": "2.28.999.1",
      "noMsi": false,
      "authors": "Author"
    }
  }

すべて正常に動作します。私は.exeインストーラーを持っていますが、プログラムファイルディレクトリにコンテンツを配置する.msiインストーラーを用意する方法はありません。

enter image description here

代わりに、C:\ Users\UserHome\AppData\Local\electronフォルダーにインストールし、以下のようなインストーラーを作成しました。

enter image description here

プログラムファイルフォルダーにコンテンツを配置するelectronビルダーを使用して、実際の.msiインストーラーを作成する方法はありますか?機能した唯一のプロジェクトは、このプロジェクト https://github.com/theodo/electron-boilerplate ですが、以前のバージョンのelectron-builderを使用しています。

Electron文書でnoMsiをfalseに設定すると、トリックを実行する必要があります...

Should Squirrel.Windows create an MSI installer?
16
Aaleks

アプリをProgram FilesにインストールするためにMSIをインストールする必要はありません。

Nsis構成(oneClick)でワンクリックを無効にすると、ユーザーはシングルユーザーインストール(AppData)またはマシンごと(Program Files)のどちらでインストールするかを尋ねられます。

それらを選択したくない場合は、perMachineをfalseに設定して、Program Filesへのインストールのみを許可できます。

"nsis": {
  "oneClick": false,
  "perMachine": false
},

管理者権限がなくてもインストールできるので、個人的にはオプションのままにしておきます!

electron-builderの最新バージョンには、ユーザーが任意のインストール場所を選択できるallowToChangeInstallationDirectoryオプションもあります。

5
Tim

最新のelectronビルダーリリースのwiki に記載されているように、build.win内でmsiオプションを使用する必要があります。

"build": {
    "app-bundle-id": "org.test.mytest",
    "app-category-type": "public.app-category.graphics-design",
    ...
    ,
    "win": {
      "title": "My awesome app",
      "version": "2.28.999.1",
      "msi": true,
      "authors": "Author"
    }
  }
4
wilver

私はこれを(まだ)動作させることはできていませんが、私の理解では反対(ひどいネーミング)です。

"noMsi": false // will make an MSI
"noMsi": true // will NOT make an MSI
2
steveostudios

必要なのがexe形式のインストーラー(私はmsiについては知りません)であれば、electron-builderを使用して、ディレクトリに解凍されたexeをビルドできます。 http://npmjs.org/package/electron-builder にあるドキュメントを確認してください。ドキュメントは非常に単純です。 exeで解凍したフォルダーを取得したら、「Inno Setup Compiler」を使用して、プロフェッショナルなインストーラーを作成します。慣れてきたら、5分ほどですべてが完了します。

2
Teja

ターゲットを見ることで分かりました。これを行う

"win": {
  "target": [
   "msi"
   ]
//your code here
},
0
Ethan K-B