Электронный инсталлятор MSI с использованием электронного компоновщика

Мне удалось создать установщик.exe для Windows с помощью Electron Builder, я создаю 2 package.json, как указано в документации:

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

В итоге у меня была папка с рабочим.exe введите описание изображения здесь

"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, который помещает содержимое в каталог программных файлов.

введите описание изображения здесь

Вместо этого я закончил установку в папке C:\Users\UserHome\AppData\Local\ Electron с установщиком, как показано ниже.

введите описание изображения здесь

Есть ли способ иметь настоящий установщик.msi, использующий электронный сборщик, который помещает содержимое в папку с программным файлом. Единственный проект, который работал, - это https://github.com/theodo/electron-boilerplate но он использует прежнюю версию электронного конструктора.

В настройке электронного документа noMsi ложно, должен сделать трюк...

Should Squirrel.Windows create an MSI installer?

8 ответов

Если вы отключите один клик в конфигурации nsis (oneClick) пользователю предлагается выполнить однопользовательскую установку (в AppData) или на машину (в Program Files).

Если вы не хотите давать им выбор, вы можете установить perMachine в false, что разрешит установку только в Program Files:

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

Я бы лично оставил им возможность, так как они все еще могут быть установлены без прав администратора!

В последней версии electron-builder также есть allowToChangeInstallationDirectory опция, которая позволяет пользователю выбрать любое место установки.

Как указано в вики последней версии электронного строителя, вы должны использовать msi вариант в build.win:

"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"
    }
  }

Я понял это, посмотрев на цель. сделай это

"win": {
  "target": [
   "msi"
   ]
//your code here
},

Если вам нужен только установщик в формате exe (я не знаю о msi), вы можете использовать electronic-builder для сборки exe-файла, распакованного в каталог. Ознакомьтесь с документацией по адресу http://npmjs.org/package/electron-builder. Документация довольно проста. После того, как вы получите распакованную папку с вашим exe-файлом, используйте "Inno Setup Compiler", чтобы создать профессионально выглядящий установщик. Как только вы это освоите, на это уйдет всего 5 минут.

Я также не получил это работать (пока), но я понимаю, что это наоборот (ужасное название).

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

Вы можете использовать этот пакет "electronics-wix-msi" для выполнения этой задачи.https://www.npmjs.com/package/electron-wix-msi Но сначала вам нужно упаковать ресурсы вашего проекта с помощью Electron-packager или Electron-Builder, а затем указать путь к папке win-unpacked как APP-DIR

Это сработало для меня:

      "build": {
    "artifactName": "yourappname.${ext}",
    "directories": {
      "output": "dist"
    },
    "win": {
      "target": "msi",
      "icon": "assets/logo.ico"
    },

поместите это в свой package.json и запустите:

      electron-builder --win

электронщик сделает msi для вашего проекта

Чтобы избежать подобных проблем, используйте только электронную сборку без установщика MSI.

"scripts": { "serve": "vue-cli-service service --port 5000", "build": "vue-cli-service build", "lint": "vue-cli-service lint", "electron :build": "vue-cli-service Electron:build", "electron:serve": "vue-cli-service Electron:serve", "postinstall": "electron-builder install-app-deps", "postuninstall" : "electron-builder install-app-deps" },

Другие вопросы по тегам