londers
@londers
Full stack

В чем причина ошибки создания .msi файла установщика приложения?

Всем привет! Возникла такая проблема: Есть некое приложение, написанное на Electron, для него нужно создать установщик. Для этого я использую electron-wix-msi. Дальше по документации написал следующий скрипт в файле build.js:
(async () => {
  const MSICreator = require('electron-wix-msi').MSICreator

  // Step 1: Instantiate the MSICreator
  const msiCreator = new MSICreator({
    appDirectory: './',
    description: 'SomeDesc',
    exe: 'shop',
    name: 'SomeName',
    manufacturer: 'Hogwarts',
    version: '1.0.0',
    outputDirectory: './build'
  })

  // Step 2: Create a .wxs template file
  await msiCreator.create().catch(e => console.error(e))

  // Step 3: Compile the template to a .msi file
  await msiCreator.compile().catch(e => console.error(e))
})()


Попробовал его выполнить через "node build.js" и выдавало ошибку, которую я не смогу написать, но я её решил установкой Wix Toolset.

Выполнил код ещё раз и теперь выдает следующее:
"light" �� ���� ����७��� ��� ���譥���������, �ᯮ��塞�� �ணࠬ��� ��� ������ 䠩���.
"candle" �� ���� ����७��� ��� ���譥
�
��������, �ᯮ��塞�� �ணࠬ��� ��� ������ 䠩���.
It appears that electron-wix-msi cannot find candle.exe or light.exe.   
Please consult the readme at https://github.com/felixrieseberg/electron-wix-msi
for information on how to install the Wix toolkit, which is required.   

Error: Could not find light.exe or candle.exe
    at MSICreator.<anonymous> (C:\Users\akyla\Documents\desktop_app\node_modules\electron-wix-msi\lib\creator.js:80:23)
    at Generator.next (<anonymous>) 
    at C:\Users\akyla\Documents\desktop_app\node_modules\electron-wix-msi\lib\creator.js:8:71
    at new Promise (<anonymous>)    
    at __awaiter (C:\Users\akyla\Documents\desktop_app\node_modules\electron-wix-msi\lib\creator.js:4:12)   
    at MSICreator.compile (C:\Users\akyla\Documents\desktop_app\node_modules\electron-wix-msi\lib\creator.js:73:16)
    at C:\Users\akyla\Documents\desktop_app\build.js:19:20


Перерыл пол интернета и не смог найти решения моей проблемы. Единственное что я смог выяснить, методом исключения, что вот эта функция требует те самые candle.exe и light.exe:
// Step 3: Compile the template to a .msi file
  await msiCreator.compile().catch(e => console.error(e))


Нашел чьё то решение проблемы, но действий к решению я так и не понял...

У меня остаются эти вопросы:
  1. Где мне достать эти файлы?
  2. Куда мне их поставить?
  3. Правильные ли я указал пути?
  • Вопрос задан
  • 317 просмотров
Пригласить эксперта
Ответы на вопрос 2
firedragon
@firedragon
Не джун-мидл-сеньор, а трус-балбес-бывалый.
Файлы берете тут. Все тулзы появляются в папке установки.
Для билда создайте свой пускач

что то типа
wix.cmd

SET PATH= "c:\program files\wix toolset\bin";%PATH%
REM тут ваш код

https://wixtoolset.org/
Ответ написан
@bolshakov_nv
Для Windows: cкачиваете wix311.exe по ссылке
https://github.com/wixtoolset/wix3/releases/tag/wi...
6541fec385fb2773356105.png
Устанавливаете по кнопке Install (у меня uninstall, т.к. я уже установил):
6541ff175937e956383661.png
В папке Program Files (x86) появится Wix Toolset:
6541ff8313072010039444.png
В переменных среды добавьте в Path путь до Wix Toolset bin:
6541ffd7b1bbb132609187.png
Теперь в cmd наконец-то появится candle.exe:
6542001d8125c355516233.png
Все, проблема должна решиться, радуемся жизни!
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы