Giter Site home page Giter Site logo

electron-userland / electron-wix-msi Goto Github PK

View Code? Open in Web Editor NEW
316.0 14.0 91.0 8.6 MB

:dvd: Create traditional MSI installers for your Electron app

License: MIT License

TypeScript 99.06% JavaScript 0.94%
electron installer wix msi electronjs wix-toolset

electron-wix-msi's People

Contributors

ben-of-codecraft avatar bitdisaster avatar dependabot[bot] avatar eoinsha avatar felixrieseberg avatar georgexu99 avatar greghmerrill avatar hkrausaxon avatar kant avatar konstantinjdobler avatar lafleurh avatar lujb avatar malept avatar marshallofsound avatar mozmorris avatar noahheck avatar pvenky avatar qazzian avatar relsqui avatar thierrylegal avatar trias avatar vertedinde avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

electron-wix-msi's Issues

Using inside of Electron App.

I'm trying to write an app that packages my apps.

So ive included this in an electron app. But when i try and run this code from the application it creates the .wsx with incorrect asar paths. It assumes .asar files are directories when compiled with electron.

For example when i run the script without electron, it looks like: (THIS IS CORRECT)
<File Name="app.asar" Id="resources_app.asar" Source="C:\Users\Lauran\Desktop\win-packager\win-packager\release-builds\the-x-factory-sing-it-win32-ia32\resources\app.asar" KeyPath="yes" Checksum="yes"/>

With Electron (THIS IS INCORRECT)
<Directory Id="resources_app.asar_.somefile" Name=".somefile">

It thinks all asar files are directories. Which is incorrect. I'm also using full paths for everything.

My assumption would be that electron contains asar dependencies and is causing them to get unpacked?

How can i work around this?

UPDATE:
I see the issue is related to klaw and is currently an open issue.
manidlou/node-klaw-sync#7

UPDATE 2:
According to the developers at klaw, the code in walker should have never worked, it is suppose to return a directory for .asar files, but running this script without electron returns them as files. I'm crazy lost to whats going on.

Set the default install path

Right now, the installer just installs to Program Files\name (where name is passed to MSICreator). Is it possible to install to something like: Program Files\manufacturer\name (where name and manufacturer are passed to MSICreator)?

signWithParams Throws 'No certificates were found that met all the given criteria'

Summary
signWithParams isn't working as expected. Running signtool directly from the command line works fine, i.e.., signtool.exe sign /s MY /n Publisher /fd sha256 /u "Code Signing" /tr http://tsa.starfieldtech.com .\setup.msi works

Repro Steps

  • Make sure the certificate exists
  • Add signWithParams property to config
...
signWithParams: '/s MY /n Publisher /fd sha256 /u "Code Signing" /tr http://tsa.starfieldtech.com',
...

Notifications - MSI Application Identity is Not Consistent with EXE

When I use the msi installer generated with electron-wix-msi, the Application Identity displayed at the bottom of the notification is prefixed with electron.app. However, using the EXE only displays MyApp. The latter is correct. The MSI should not prefix the application identity with electron.app

image

Is there a way to add additional dependencies to the MSI?

My electron app requires vc_redistx64 and Python27.dll in order to run. I was wondering if there was a way to include these in the installation. E.g. a checkbox at the end of the installation that runs the vc_redist installer. I'm not sure if this is possible with this tool, so any direction would be helpful.

Thanks!

Error while installing electron-wix-msi 3.0.0

npm install [email protected]

[email protected] install F:\Installer\node_modules\exe-icon-extractor
node-gyp rebuild

F:\Installer\node_modules\exe-icon-extractor>if not defined npm_config_node_gyp (node "C:\Users\xxxxx\AppData\Roaming\nvm\v10.16.3\node_modules\npm\node_modules\npm-lifecycle\node-gyp-bin\....\node_modules\node-gyp\bin\node-gyp.js" rebuild ) else (node "C:\Users\xxxxxxxx\AppData\Roaming\nvm\v10.16.3\node_modules\npm\node_modules\node-gyp\bin\node-gyp.js" rebuild )
Building the projects in this solution one at a time. To enable parallel build, please add the "/m" switch.
module.cc
win_delay_load_hook.cc
..\src\module.cc(275): warning C4530: C++ exception handler used, but unwind semantics are not enabled. Specify /EHsc [F:\Project_Repository\RFIdea\UtilityGen2AngularElectron\Installer\node_modules\exe-icon-extractor\build\module.vcxproj]
..\src\module.cc(330): warning C4101: 'status' : unreferenced local variable [F:\Installer\node_modules\exe-icon-extractor\build\module.vcxproj]
LINK : fatal error LNK1117: syntax error in option 'LTCG:INCREMENTAL' [F:\Installer\node_modules\exe-icon-extractor\build\module.vcxproj]
gyp ERR! build error
gyp ERR! stack Error: C:\Program Files (x86)\MSBuild\14.0\bin\msbuild.exe failed with exit code: 1
gyp ERR! stack at ChildProcess.onExit (C:\Users\xxxxxxxx\AppData\Roaming\nvm\v10.16.3\node_modules\npm\node_modules\node-gyp\lib\build.js:262:23)
gyp ERR! stack at ChildProcess.emit (events.js:198:13)
gyp ERR! stack at Process.ChildProcess._handle.onexit (internal/child_process.js:248:12)
gyp ERR! System Windows_NT 10.0.18363
gyp ERR! command "C:\Program Files\nodejs\node.exe" "C:\Users\xxxxxxxx\AppData\Roaming\nvm\v10.16.3\node_modules\npm\node_modules\node-gyp\bin\node-gyp.js" "rebuild"
gyp ERR! cwd F:\Installer\node_modules\exe-icon-extractor
gyp ERR! node -v v10.16.3
gyp ERR! node-gyp -v v3.8.0
gyp ERR! not ok
npm WARN saveError ENOENT: no such file or directory, open 'F:\Project_Repository\RFIdea\UtilityGen2AngularElectron\Installer\package.json'
npm WARN enoent ENOENT: no such file or directory, open 'F:\Project_Repository\RFIdea\UtilityGen2AngularElectron\Installer\package.json'
npm WARN Installer No description
npm WARN Installer No repository field.
npm WARN Installer No README data
npm WARN Installer No license field.
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: [email protected] (node_modules\exe-icon-extractor):
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: [email protected] install: node-gyp rebuild
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: Exit status 1

  • [email protected]
    updated 1 package and audited 77 packages in 5.034s
    found 4 low severity vulnerabilities
    run npm audit fix to fix them, or npm audit for details

It Installs the electron-wix-msi but shows error when creating MSI package

Can't set an icon

I am trying to set the path to the icon, like this:
const msiCreator = new MSICreator({ . . . , iconPath: 'C:/path/to/electron_app/icon/image.ico', });
But when I execute the ''node build_installer.js'' command to build, I get an error in the console:
Unable to extract icon from exe. Please provide an explicit icon via parameter. Error: Cannot find module 'exe-icon-extractor'.
I don't know what it is, please, I need help

Error creating file msi

Im getting the following error when run file to build installer:

Error: Could not create msi file. Code: 103 StdErr: StdOut: Windows Installer XML Toolset Linker version 3.11.2.4516
Copyright (c) .NET Foundation and contributors. All rights reserved.

C:\electron\demo-electron-with-react\windows_installer\Messenger.wxs(767) : error LGHT0103 : The system cannot find the file 'C:\electron\demo-electron-with-react\Messenger-win32-x64\resources\app\node_modules.cache\terser-we
bpack-plugin\content-v2\sha512\29\b0\afdc723081b880ea07ce548183eb0153f57c98c83af640be97665b4ce906dcd680d66c892d4d7b0083514017b40b1d9fe6a7abc68e90a88406d563a327d3'.

C:\electron\demo-electron-with-react\windows_installer\Messenger.wxs(775) : error LGHT0103 : The system cannot find the file 'C:\electron\demo-electron-with-react\Messenger-win32-x64\resources\app\node_modules.cache\terser-we
bpack-plugin\content-v2\sha512\7e\1b\966b0652c41549dee2f3ab3f9069d9dd22c390a0b2dc15c5be3ddb4fb30c1a99892977ffaccbd4a30a57729be40ce4f72eec6058259e70fc73ae54e48484'.

C:\electron\demo-electron-with-react\windows_installer\Messenger.wxs(783) : error LGHT0103 : The system cannot find the file 'C:\electron\demo-electron-with-react\Messenger-win32-x64\resources\app\node_modules.cache\terser-we
bpack-plugin\content-v2\sha512\e7\58\35d03864ac786a6ec4a5950a0fec6732404d9632c8c093a86cd4079829d37a589faa24767e8fb30538d253f677d8a6f7bf5548b3e2c5303b0d23bb13e4cb'.

Can anyone helps me solve that problems, thanks a lot

Adding an easy way to insert Licence

Hi,

It is a bit overkill having to use a template for adding a license as wonderfully explained here : #35 (comment)

Could you consider adding a msiCreator.license property that takes a path to the .rtf file as a parameter ?

Thanks,

Disable auto update

If i understand correctly, the msi created should act as a per machine msi.
Besides wrapping the .exe file itself, is there any way to have the auto update disabled for the application installed from the msi?
Otherwise I don't see why is this msi creator different for an electron application than another application not created by electron if it only wraps the application .exe file itself

Package ignore the language code when building for graphical UI

Hello everyone,

I noticed that electron-wix-msi ignores the language code when we activate the ui option.
For instance, the following snippet will build correctly the setup with the portuguese language when I remove the ui key.

Is there a way to fix this issue or provide a workaround?

const path = require('path');
const { MSICreator } = require('electron-wix-msi');

const msiCreator = new MSICreator({
	appDirectory: path.resolve(__dirname, 'out', 'sete-win32-x64'),
	outputDirectory: path.resolve(__dirname, 'out'),
	exe: 'sete.exe',
	name: 'SETE',
	ui: {
		enabled: true,
		chooseDirectory: true,
	},
	description: 'Software de Gestao do Transporte Escolar',
	manufacturer: 'CECATE UFG',
	language: 1046,
	version: '1.0.0'
});

async function build() {
	await msiCreator.create();
	await msiCreator.compile();
}

build().catch(console.error);

not know how to run below code

don't know how to use this to generator an msi .

import { MSICreator } from 'electron-wix-msi';

// Step 1: Instantiate the MSICreator
const msiCreator = new MSICreator({
  appDirectory: '/path/to/built/app',
  description: 'My amazing Kitten simulator',
  exe: 'kittens',
  name: 'Kittens',
  manufacturer: 'Kitten Technologies',
  version: '1.1.2',
  outputDirectory: '/path/to/output/folder'
});

// Step 2: Create a .wxs template file
await msiCreator.create();

// Step 3: Compile the template to a .msi file
await msiCreator.compile();

RangeError: Invalid string length (ERROR ON COMPILE)

Hi i have a strange problem running the script, i can't solve the problem, i have this code

async function compile(execName){
    
// Step 1: Instantiate the MSICreator
const msiCreator = new MSICreator({
    appDirectory: appDirectoryRoot+ "/app-win32-x64",
    outputDirectory: outputDirectory + "/app-win32-x64",
    description: 'description example',
    exe: execName,
    name: execName,
    shortcutFolderName:"app-name",
    manufacturer: 'app-author',
    version: "1.0.0",
    ui:{
        chooseDirectory: true,
    }
});
 
// Step 2: Create a .wxs template file
    await msiCreator.create();
 
// Step 3: Compile the template to a .msi file
    await msiCreator.compile();
}

compile("cinder-win32-x64");

this is the console output

electron-wix-msi: Using light.exe (3.11.1.2318) and candle.exe (3.11.1.2318)
C:\Users\zerozelta\Documents\ElectronProjects\Cinder\node_modules\electron-wix-msi\lib\utils\spawn.js:13
stdout += data;

RangeError: Invalid string length
at Socket.fork.stdout.on (C:\Users\zerozelta\Documents\ElectronProjects\Cinder\node_modules\electron-wix-msi\lib\utils\spawn.js:13:23)
at Socket.emit (events.js:182:13)
at addChunk (_stream_readable.js:283:12)
at readableAddChunk (_stream_readable.js:264:11)
at Socket.Readable.push (_stream_readable.js:219:10)
at Pipe.onStreamRead [as onread] (internal/stream_base_commons.js:94:17)

  • the input and output paths seems to be correct
  • the files .wxs .wixobj and .wixpdb are generated (im not sure if .wixobj and .wixpdb are fully writed)

I know that is a problem with Node and V8 (something exeed the maximum string size), but I followed the steps of use and practically do not modify the example code. i dont know what is the mistake or how can I solve this

Shortcut Icon

Hello,

really nice tool ;) Could you provide an option to use a custom shortcut icon?

Thanks.

@electron-forge/maker-wix saves electon app in wrong Program Files

I was told to transfer issue to this repo: electron/forge#1712

@electron-forge/maker-wix saves Electron 9 application in Program Files (x86) folder in Win10.
It should store it in Program Files which is for 64-bit applications.

Here is my forge.config.js:

makers: [
	{
		name: "@electron-forge/maker-wix",
		config: {
			programFilesFolderName: "my-app",
			ui: {
				chooseDirectory: false,

Error when making MSI

A string was provided with characters that are not available in the specified
database code page '1252'. Either change these characters to ones that exist in
the database's code page, or update the database's code page by modifying one of
the following attributes: Product/@codepage, Module/@codepage, Patch/@codepage,
PatchCreation/@codepage, or WixLocalization/@codepage.

I was able to get around this by adding Codepage="1252" manually to my generated .wxs-file but could this be configurable like other options?

Can't set an icon

I am trying to set the path to the icon, like this:
const msiCreator = new MSICreator({ . . . , iconPath: 'C:/path/to/electron_app/icon/image.ico', });
But when I execute the ''node build_installer.js'' command to build, I get an error in the console:
Unable to extract icon from exe. Please provide an explicit icon via parameter. Error: Cannot find module 'exe-icon-extractor'.
I don't know what it is, please, I need help

Error: spawn candle.exe ENOENT

I'm trying to execute this script...

var { MSICreator } = require('electron-wix-msi');

async function nya() {

// Step 1: Instantiate the MSICreator
const msiCreator = new MSICreator({
    appDirectory: __dirname + '/app',
    outputDirectory: __dirname + '/install',
    description: "Tiny Rec Helper",
    exe: "tiny_rec_helper-0.2.3-setup",
    name: "Tiny Rec Helper",
    manufacturer: "Tiny Jasmini",
    version: "0.2.3",
    shortName: "TRH",
    programFilesFolderName: "Tiny Rec Helper",
    upgradeCode: "6a92dd3f-3c36-48c3-92b2-ce1974a6c83d"
});

// Step 2: Create a .wxs template file
await msiCreator.create();

// Step 3: Compile the template to a .msi file
await msiCreator.compile();

}

nya();

but happen it...

electron-wix-msi: Using light.exe (3.11.1.2318) and candle.exe (3.11.1.2318)
creator.js:77
Error: spawn candle.exe ENOENT
util.js:1031
at _errnoException (util.js:1031:13)
at Process.ChildProcess._handle.onexit (internal/child_process.js:201:19)
at onErrorNT (internal/child_process.js:389:16)
at _combinedTickCallback (internal/process/next_tick.js:138:11)
at process._tickCallback (internal/process/next_tick.js:180:9)

tiny_rec_helper-0.2.2-setup.wxs(22156) : error CNDL0014 : The ComponentRef/@id attribute's value, '.eslintignore_057bb387_51f7_496f_a7ab_59c651a188e1', is not a legal identifier. Identifiers may contain ASCII characters A-Z, a-z, digits, underscores (_), or periods (.). Every identifier must begin with either a letter or an underscore.

I need help :c

Support localization via .wxl files

Hello, thank you for building this great tool! We are trying to use this package in a project, however we need to be able to use localizations, which is possible through an option of the light.exe. Other people have also had this requirement, see #38. I opened a pull request (#94) to fix this, is it possible to get this merged @bitdisaster? Thanks for your work maintaining this library!

Error creating wixobj file.

Im getting the following error when the compile() method runs:

Unhandled rejection Error: Could not create wixobj file. 
Code: 103 StdErr:  
StdOut: candle.exe : error CNDL0103 : 
The system cannot find the file 'dist\electronwin.wxs' with type 'Source'.

The create method runs and does make a .wxs file though.
Here is repo I'm working with: https://github.com/trevwaddell/electron-wix-test

I'm running this in a windows 10 vm with virtual box. I installed wix toolset and added them to my class path.

How to guide for ui.template

I would like to insert a LicenseAgreementDlg just after WelcomeDlg and before InstallDirDlg but don't understand how to proceed ? Indeed the readme.md does not help a lot on this part ... to me, it is unclear how to set ui.template, and other template configuration fields (componentTemplate , componentRefTemplate , directoryTemplate , wixTemplate ,uiTemplate , backgroundTemplate ) to do so ?!
Could you provide more explanation, or even provide an example on how to set these fields in the configuration object provided to MSICreator()?

Create a msi in Jenkins

Hi,

I succeed to create a msi with my Windows 10 labtop.

I am wondering if I can do it from Jenkins ? I have to install the WixToolset to make the creation of msi possible. So I don't know how to do it.

Any idea ?

I also try with electron-installer-windows but I have never find to know how it's works.

Thanks,

LGHT0204: The target file <XXX> is installed in "[ProgramFilesFolder]\<app>" by two different components on an LFN system

I'm attempting to package a win32-x64 folder generated by electron-forge package but keep getting a wall of LGHT0204 errors on the compile command. The errors seem to reference files in node_modules. The MSI installer is still created, but the EXE it installed does not open, and launching the MSI as administrator gives me the error The installation package could not be opened

Error log (snippet)

C:\Users\user\app\out\installer64\fafcms.wxs(35774) : error LGHT0204 : ICE30: The target file 'split.js' is installed in '[ProgramFilesFolder]\FF CMS\' by two different components on an LFN system: '_099c4394_e9dc_4322_8755_09fa0b5ab312' and '_8d1ab663_f699_4ce4_b73f_d56d2a342371'. This breaks component reference counting.
C:\Users\user\app\out\installer64\fafcms.wxs(3890) : error LGHT0204 : ICE30: The target file 'split.js' is installed in '[ProgramFilesFolder]\FF CMS\' by two different components on an LFN system: '_099c4394_e9dc_4322_8755_09fa0b5ab312' and '_8d1ab663_f699_4ce4_b73f_d56d2a342371'. This breaks component reference counting.
C:\Users\user\app\out\installer64\fafcms.wxs(35774) : error LGHT0204 : ICE30: The target file 'split.js' is installed in '[ProgramFilesFolder]\FF CMS\' by two different components on an LFN system: '_2190229f_9b63_4fca_83e2_e4052571eecf' and '_8d1ab663_f699_4ce4_b73f_d56d2a342371'. This breaks component reference counting.
C:\Users\user\app\out\installer64\fafcms.wxs(5819) : error LGHT0204 : ICE30: The target file 'split.js' is installed in '[ProgramFilesFolder]\FF CMS\' by two different components on an LFN system: '_2190229f_9b63_4fca_83e2_e4052571eecf' and '_8d1ab663_f699_4ce4_b73f_d56d2a342371'. This breaks component reference counting.
C:\Users\user\app\out\installer64\fafcms.wxs(35774) : error LGHT0204 : ICE30: The target file 'split.js' is installed in '[ProgramFilesFolder]\FF CMS\' by two different components on an LFN system: '_8b004414_d9df_41d1_a7a5_f7d8e3634b53' and '_8d1ab663_f699_4ce4_b73f_d56d2a342371'. This breaks component reference counting.
C:\Users\user\app\out\installer64\fafcms.wxs(17672) : error LGHT0204 : ICE30: The target file 'split.js' is installed in '[ProgramFilesFolder]\FF CMS\' by two different components on an LFN system: '_8b004414_d9df_41d1_a7a5_f7d8e3634b53' and '_8d1ab663_f699_4ce4_b73f_d56d2a342371'. This breaks component reference counting.
C:\Users\user\app\out\installer64\fafcms.wxs(35774) : error LGHT0204 : ICE30: The target file 'split.js' is installed in '[ProgramFilesFolder]\FF CMS\' by two different components on an LFN system: '_4b6597ff_521f_4cb1_a082_e31391a74154' and '_8d1ab663_f699_4ce4_b73f_d56d2a342371'. This breaks component reference counting.
C:\Users\user\app\out\installer64\fafcms.wxs(34424) : error LGHT0204 : ICE30: The target file 'split.js' is installed in '[ProgramFilesFolder]\FF CMS\' by two different components on an LFN system: '_4b6597ff_521f_4cb1_a082_e31391a74154' and '_8d1ab663_f699_4ce4_b73f_d56d2a342371'. This breaks component reference counting.
C:\Users\user\app\out\installer64\fafcms.wxs(35777) : error LGHT0204 : ICE30: The target file 'kvligyvc.js|to-primitive.js' is installed in '[ProgramFilesFolder]\FF CMS\' by two different components on an LFN system: '_1898a8ab_3da4_4740_a923_d67e350689c9' and '_cc5cf05b_9e5e_4c7b_a869_557548954bad'. This breaks component reference counting.
C:\Users\user\app\out\installer64\fafcms.wxs(34427) : error LGHT0204 : ICE30: The target file 'kvligyvc.js|to-primitive.js' is installed in '[ProgramFilesFolder]\FF CMS\' by two different components on an LFN system: '_1898a8ab_3da4_4740_a923_d67e350689c9' and '_cc5cf05b_9e5e_4c7b_a869_557548954bad'. This breaks component reference counting.
C:\Users\user\app\out\installer64\fafcms.wxs(35780) : error LGHT0204 : ICE30: The target file 'gms94rl3.js|to-string-tag.js' is installed in '[ProgramFilesFolder]\FF CMS\' by two different components on an LFN system: '_1de9fe18_755e_491e_b839_6cb2f798c4f2' and '_09600d2a_b33c_4c28_8d63_f73955267ba0'. This breaks component reference counting.
C:\Users\user\app\out\installer64\fafcms.wxs(34430) : error LGHT0204 : ICE30: The target file 'gms94rl3.js|to-string-tag.js' is installed in '[ProgramFilesFolder]\FF CMS\' by two different components on an LFN system: '_1de9fe18_755e_491e_b839_6cb2f798c4f2' and '_09600d2a_b33c_4c28_8d63_f73955267ba0'. This breaks component reference counting.
C:\Users\user\app\out\installer64\fafcms.wxs(35783) : error LGHT0204 : ICE30: The target file 'nci4hfev.js|unscopables.js' is installed in '[ProgramFilesFolder]\FF CMS\' by two different components on an LFN system: '_c88713fc_d674_4c84_947a_fa0c82e5e956' and '_90006e73_db0a_457f_aa62_801b7b86ae20'. This breaks component reference counting.
C:\Users\user\app\out\installer64\fafcms.wxs(34433) : error LGHT0204 : ICE30: The target file 'nci4hfev.js|unscopables.js' is installed in '[ProgramFilesFolder]\FF CMS\' by two different components on an LFN system: '_c88713fc_d674_4c84_947a_fa0c82e5e956' and '_90006e73_db0a_457f_aa62_801b7b86ae20'. This breaks component reference counting.

Versions

electron-wix-installer: 2.0.3
electron-forge: 5.2.2
light: 3.11.1
candle: 3.11.1
OS: Windows 10 Pro v.1803 64 bit

Generated Windows Installer (MSI) does not preserve source App Directory Structure

Hi Guys,

First of all, thanks for developing/providing electron-wix-msi to the Electron community. I think I was lucky to find this module. It looks promising!

On the other hand, I think I have found an issue that needs to be addressed by electron-wix-msi module. According docs for Application Distribution on Electron Documentation, the standard way to prepare an Electron app for distribution is to have the following directory structure, for example:

electron/resources/app
|____ package.json
|____ main.js
|____ index.html

So, I prepared my Electron app with such directory structure and provided the path of root "electron" directory to electron-wix-msi module, for example:

import { MSICreator } from 'electron-wix-msi';
const msiCreator = new MSICreator({
  appDirectory: '/path/to/electron/directory',
  ...
});
...

The electron-wix-msi module successfully generated the Windows Installer file (MSI). The problem I found is that after I setup the application using the generated Windows Installer, all sub-directories under provided source App Directory ('/path/to/electron/directory', including the resources/app directory) seem to have gone in the Application installed under "Program Files" directory. Instead, all files contained under source App Directory seem to have been placed in a single/flattened directory under the corresponding "Program Files" directory. We are using latest release of electron-wix-msi module (v1.3.0).

Please confirm if this is an issue that can be fixed in a future version of electron-wix-msi module. In my humble opinion, this problem is related to the generated intermediate WXS file, as the components under "Program Files" directory should preserve source App Directory Structure.

So far, it looks like this is the only show-stopper issue that is impeding us to use electron-wix-msi module in the way is intended to be used. In case this issue can be fixed on electron-wix-msi module, could you provide an ETA on when would it be fixed? Sorry for asking about that but we are eager to go ahead with electron-wix-msi module and continue using it as part of the tooling we have in place for our Electron applications.

Sorry for long description! I just wanted to ensure the issue is well documented. Thanks again for electron-wix-msi module!

Thanks,
Anibal

AutoUpdater is not working if the defaultInstallMode is perUser

My goal is to create an wix-msi installer which need no admin permission and includes autoUpdates.

As long as I don't set the defaultInstallMode: 'perUser', the autoUpdater is working. But when I set the defaultInstallMode, the autoUpdater can't find the update file:

[23/12/20 16:32:01] info: Program:  MSQ Updater: --checkForUpdate http://localhost:3100/update/1.0.0
[23/12/20 16:32:01] info: Utility: IsAutoUpdateEnabled: AutoUpdate key does not exist. AutoUpdating disabled.
[23/12/20 16:32:01] info: Program: Fetching update information, downloading from http://localhost:3100/update/1.0.0
[23/12/20 16:32:01] info: CheckForUpdateImpl: Generated new staging user ID: a09d1337-c74d-52d7-8226-d1fb2f9a05f5
[23/12/20 16:32:01] info: CheckForUpdateImpl: Downloading RELEASES file from http://localhost:3100/update/1.0.0
[23/12/20 16:32:01] info: FileDownloader: Downloading url: http://localhost:3100/update/1.0.0/RELEASES
[23/12/20 16:32:02] warn: CheckForUpdateImpl: No local releases found, starting from scratch
[23/12/20 16:32:02] warn: UpdateInfo: Couldn't get release notes for:test-1.0.3-full.nupkg: System.IO.FileNotFoundException: Could not find file 'C:\Users\user\AppData\Local\Programs\test\packages\test-1.0.3-full.nupkg'.
File name: 'C:\Users\user\AppData\Local\Programs\test\packages\test-1.0.3-full.nupkg'
   at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
   at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost)
   at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share)
   at NuGet.ZipPackage.<>c__DisplayClass9_0.<.ctor>b__0()
   at NuGet.ZipPackage.EnsureManifest()
   at Squirrel.ReleaseEntry.GetReleaseNotes(String packageDirectory)
   at Squirrel.UpdateInfo.<FetchReleaseNotes>b__19_0(ReleaseEntry x)
[23/12/20 16:32:02] info: Program: ensureCurrentVersion: No locally installed release package found. This is likely the first update of an MSI install. Looking for latest version via App folder name.
[23/12/20 16:32:02] info: Program: Finished Squirrel Updater

Here is my MSICreator:

const msiCreator = new msi.MSICreator({
  appDirectory: path.join(__dirname, '../out/test-win32-x64'),
  exe: 'test',
  name: 'test',
  version: '1.0.2',
  outputDirectory: path.join(__dirname, '../out/releases/'),
  ui: {
    chooseDirectory: true,
  },
  features: {
    autoUpdate: true,
  },
  defaultInstallMode: 'perUser',
  updaterPermissions: true,
});

Is there a way to realize the goal?

How to guide?

Wanted to try out this project but could not find usage steps

Pass variable from setup to Electron app

Hi,

I’m trying customize the setup UI by adding a checkbox whose value should be sent to Electron (or read by Electron) in order to set an app variable after the installation.

Is this thing possible? And if so, how?

[Suport][ EPERM: operation not permitted]

Hello All,

I created the app and the app works fine if I run the file with "Run as Administrator" but when I run the app with normal mode will have error as below

Uncaught Error: EPERM: operation not permitted, open 'C:\Program Files (x86)\Uhes_desktop\app-1.0.0\resources\app\src\controllers..\config\statusDevices.json'
at Object.openSync (fs.js:440)
at Object.func [as openSync] (electron/js2c/asar.js:140)
at Object.writeFileSync (fs.js:1265)

Because the app doesn't have permission to write file at C:\Program Files (x86). Currently, I am using API for Nodejs to write file.

Do you have any ideas for the case ?

Best regards,
Thong LT

LGHT0091 : Duplicate symbol due to incorrect Directory entry in wxs file

To reproduce this problem, I created a new electronjs app using electron-forge (5.2.2):

electron-forge init gregtest2

The app runs fine, for example if I execute npm start. Next, I add a "wix" dependency to my package.json.

  "config": {
    "forge": {
      "make_targets": {
        "win32": [
          "squirrel",
          "wix"
        ],

When this is present, electron-forge calls electron-wix-msi (version 1.3.0) to generate an msi. However, it ultimately fails, with the error below:

E:\views\dodc-ammo-2.1\electron\electron-forge\gregtest2\out\make\wix\x64\gregtest2.wxs(12808) : error LGHT0091 : Duplicate symbol 'Directory:resources_app_node_modules_yargs_parser_lib' found. This typically means that an Id is duplicated. Check to make sure all your identifiers of a given type (File, Component, Feature) are unique.
E:\views\dodc-ammo-2.1\electron\electron-forge\gregtest2\out\make\wix\x64\gregtest2.wxs(12897) : error LGHT0092 : Location of symbol related to previous error.

When I examine the wxs file created, I see an anomaly. The Directory with Id resources_app_node_modules_yargs_parser_lib appears twice in the generated wxs file. Once where it should, as a child of resources_app_node_modules_yargs_parser:

                <Directory Id="resources_app_node_modules_yargs_parser" Name="yargs-parser">
                  <Directory Id="resources_app_node_modules_yargs_parser_lib" Name="lib">
                    <Component Id="resources_app_node_modules_yargs_parser_lib_tokenize_arg_string.js" Guid="48d2db54-3565-4cc6-9f55-f91c559be5d5">
                      <File Name="tokenize-arg-string.js" Id="resources_app_node_modules_yargs_parser_lib_tokenize_arg_string.js" Source="E:\views\dodc-ammo-2.1\electron\electron-forge\gregtest2\out\gregtest2-win32-x64\resources\app\node_modules\yargs-parser\lib\tokenize-arg-string.js" KeyPath="yes" Checksum="yes"/>
                    </Component>
                  </Directory>                  <Component Id="resources_app_node_modules_yargs_parser_CHANGELOG.md" Guid="dd26432b-0805-47ef-abe5-94c40700d7a8">
                    <File Name="CHANGELOG.md" Id="resources_app_node_modules_yargs_parser_CHANGELOG.md" Source="E:\views\dodc-ammo-2.1\electron\electron-forge\gregtest2\out\gregtest2-win32-x64\resources\app\node_modules\yargs-parser\CHANGELOG.md" KeyPath="yes" Checksum="yes"/>
                  </Component>

But the same Id appears again elsewhere, under Directory resources_app_node_modules_yargs, which is NOT its parent:

                <Directory Id="resources_app_node_modules_yargs" Name="yargs">
                  <Directory Id="resources_app_node_modules_yargs_parser_lib" Name="lib">
                    <Component Id="resources_app_node_modules_yargs_lib_command.js" Guid="059cc3f5-3f8b-47f3-98a7-71265e4b6c80">
                      <File Name="command.js" Id="resources_app_node_modules_yargs_lib_command.js" Source="E:\views\dodc-ammo-2.1\electron\electron-forge\gregtest2\out\gregtest2-win32-x64\resources\app\node_modules\yargs\lib\command.js" KeyPath="yes" Checksum="yes"/>
                    </Component>
                    <Component Id="resources_app_node_modules_yargs_lib_completion.js" Guid="5beeb5f1-8c3f-4e2a-af1b-ebc3eff1d0c6">
                      <File Name="completion.js" Id="resources_app_node_modules_yargs_lib_completion.js" Source="E:\views\dodc-ammo-2.1\electron\electron-forge\gregtest2\out\gregtest2-win32-x64\resources\app\node_modules\yargs\lib\completion.js" KeyPath="yes" Checksum="yes"/>
                    </Component>

Here are the actual resources from under my app:

*wks-gmerrill* /cygdrive/e/views/dodc-ammo-2.1/electron/electron-forge/gregtest2/out/gregtest2-win32-x64
$ find resources/ -type d | grep yargs
resources/app/node_modules/yargs
resources/app/node_modules/yargs/lib
resources/app/node_modules/yargs/locales
resources/app/node_modules/yargs-parser
resources/app/node_modules/yargs-parser/lib

In summary, electron-wix-msi appears to think resources/app/node_modules/yargs-parser/lib is a child of both resources/app/node_modules/yargs-parser and resources/app/node_modules/yargs when it generates the wxs file.

Modify Shortcut parameters

It would be very nice to be able to modify or reject this area of wxs file:

    <DirectoryRef Id="ApplicationProgramsFolder">
      <Component Id="ApplicationShortcut" Guid="e1f638e4-99af-4e28-bfc9-79b9c2e3d4f0" Win64='no'>
        <Shortcut Id="ApplicationStartMenuShortcut"
                  Name="the-great-app"
                  Description="theCucumber.app"
                  Target="[APPLICATIONROOTDIRECTORY]the-great-app.exe"
                  WorkingDirectory="APPLICATIONROOTDIRECTORY">
          <ShortcutProperty Key="System.AppUserModel.ID" Value="xxx" />
        </Shortcut>
        <RemoveFolder Id="ApplicationProgramsFolder" On="uninstall"/>
        <RegistryValue Root="HKCU"
                       Key="Software\Microsoft\the-great-app"
                       Name="installed"
                       Type="integer"
                       Value="1"
                       KeyPath="yes"/>
      </Component>
    </DirectoryRef>

No Documentation For Localization Files

I need to modify the LicenseAgreementDlg variables with the following .wxl per the official Wix Documentation. Source: http://wixtoolset.org/documentation/manual/v3/wixui/wixui_customizations.html

<?xml version="1.0" encoding="utf-8"?>
<WixLocalization Culture="en-us" xmlns="http://schemas.microsoft.com/wix/2006/localization">
    <String Id="LicenseAgreementDlgDescription">Please read</String>
    <String Id="LicenseAgreementDlgLicenseAcceptedCheckBox">I agree</String>
</WixLocalization>

There's no documentation in this repository for providing a .wxl. How is this accomplished?

What should the EXE be?

Should the exe configuration given to the new MSICreator point to he application setup .exe file (generated from electron packager / electron builder) or the .exe file of the installed application itself?

Lots of errors CNDL0014

Probably this is because of how electron-forge is managing package process, but when I try to build the installer it fails because this kind of errors.

error CNDL0014 : The Component/@Id attribute's value, '04100c53dc5f432d07c04be570365740873_bcf33811_39e7_4040_b3b8_be696fb50ded', is not a legal identifier. Identifiers may contain ASCII characters A-Z, a-z, digits, underscores (_), or periods (.). Every identifier must begin with either a letter or an underscore.

Do you know, by chance, how to solve this? Thanks.

How to use componentTemplate??

I have setup a configuration to generate a .msi installer, but I also need to install a .inf driver at the time of install. How do I go about setting this up using componentTemplate ?

Thanks

error LGHT0103 : The system cannot find the file electron.asar/...

Seems to be only the electron.asar. After doing some testing, it cant read the asar files no matter what.

Why cant it understand asar? I thought this was written with electron in mind?

Windows 10.

My console log.

C:\Users\Lauran\Desktop\winP\resources\app\node_modules\electron-wix-msi\lib\creator.js:161 Uncaught (in promise) Error: Could not create msi file. Code: 103 StdErr: StdOut: Windows Installer XML Toolset Linker version 3.11.1.2318
Copyright (c) .NET Foundation and contributors. All rights reserved.

C:\Users\Lauran\Desktop\Ebenezer Sing It.wxs(447) : error LGHT0103 : The system cannot find the file 'C:\Users\Lauran\Desktop\winP\apps\ebenezer\resources\electron.asar\browser\chrome-extension.js'.
C:\Users\Lauran\Desktop\Ebenezer Sing It.wxs(450) : error LGHT0103 : The system cannot find the file 'C:\Users\Lauran\Desktop\winP\apps\ebenezer\resources\electron.asar\browser\desktop-capturer.js'.
C:\Users\Lauran\Desktop\Ebenezer Sing It.wxs(453) : error LGHT0103 : The system cannot find the file 'C:\Users\Lauran\Desktop\winP\apps\ebenezer\resources\electron.asar\browser\guest-view-manager.js'.
C:\Users\Lauran\Desktop\Ebenezer Sing It.wxs(456) : error LGHT0103 : The system cannot find the file 'C:\Users\Lauran\Desktop\winP\apps\ebenezer\resources\electron.asar\browser\guest-window-manager.js'.
C:\Users\Lauran\Desktop\Ebenezer Sing It.wxs(459) : error LGHT0103 : The system cannot find the file 'C:\Users\Lauran\Desktop\winP\apps\ebenezer\resources\electron.asar\browser\init.js'.
C:\Users\Lauran\Desktop\Ebenezer Sing It.wxs(462) : error LGHT0103 : The system cannot find the file 'C:\Users\Lauran\Desktop\winP\apps\ebenezer\resources\electron.asar\browser\objects-registry.js'.
C:\Users\Lauran\Desktop\Ebenezer Sing It.wxs(465) : error LGHT0103 : The system cannot find the file 'C:\Users\Lauran\Desktop\winP\apps\ebenezer\resources\electron.asar\browser\rpc-server.js'.
C:\Users\Lauran\Desktop\Ebenezer Sing It.wxs(468) : error LGHT0103 : The system cannot find the file 'C:\Users\Lauran\Desktop\winP\apps\ebenezer\resources\electron.asar\common\atom-binding-setup.js'.
C:\Users\Lauran\Desktop\Ebenezer Sing It.wxs(471) : error LGHT0103 : The system cannot find the file 'C:\Users\Lauran\Desktop\winP\apps\ebenezer\resources\electron.asar\common\buffer-utils.js'.
C:\Users\Lauran\Desktop\Ebenezer Sing It.wxs(474) : error LGHT0103 : The system cannot find the file 'C:\Users\Lauran\Desktop\winP\apps\ebenezer\resources\electron.asar\common\init.js'.
C:\Users\Lauran\Desktop\Ebenezer Sing It.wxs(477) : error LGHT0103 : The system cannot find the file 'C:\Users\Lauran\Desktop\winP\apps\ebenezer\resources\electron.asar\common\parse-features-string.js'.
C:\Users\Lauran\Desktop\Ebenezer Sing It.wxs(480) : error LGHT0103 : The system cannot find the file 'C:\Users\Lauran\Desktop\winP\apps\ebenezer\resources\electron.asar\common\reset-search-paths.js'.
C:\Users\Lauran\Desktop\Ebenezer Sing It.wxs(483) : error LGHT0103 : The system cannot find the file 'C:\Users\Lauran\Desktop\winP\apps\ebenezer\resources\electron.asar\renderer\chrome-api.js'.
C:\Users\Lauran\Desktop\Ebenezer Sing It.wxs(486) : error LGHT0103 : The system cannot find the file 'C:\Users\Lauran\Desktop\winP\apps\ebenezer\resources\electron.asar\renderer\content-scripts-injector.js'.
C:\Users\Lauran\Desktop\Ebenezer Sing It.wxs(489) : error LGHT0103 : The system cannot find the file 'C:\Users\Lauran\Desktop\winP\apps\ebenezer\resources\electron.asar\renderer\init.js'.
C:\Users\Lauran\Desktop\Ebenezer Sing It.wxs(492) : error LGHT0103 : The system cannot find the file 'C:\Users\Lauran\Desktop\winP\apps\ebenezer\resources\electron.asar\renderer\inspector.js'.
C:\Users\Lauran\Desktop\Ebenezer Sing It.wxs(495) : error LGHT0103 : The system cannot find the file 'C:\Users\Lauran\Desktop\winP\apps\ebenezer\resources\electron.asar\renderer\override.js'.
C:\Users\Lauran\Desktop\Ebenezer Sing It.wxs(498) : error LGHT0103 : The system cannot find the file 'C:\Users\Lauran\Desktop\winP\apps\ebenezer\resources\electron.asar\renderer\security-warnings.js'.
C:\Users\Lauran\Desktop\Ebenezer Sing It.wxs(501) : error LGHT0103 : The system cannot find the file 'C:\Users\Lauran\Desktop\winP\apps\ebenezer\resources\electron.asar\renderer\web-frame-init.js'.
C:\Users\Lauran\Desktop\Ebenezer Sing It.wxs(504) : error LGHT0103 : The system cannot find the file 'C:\Users\Lauran\Desktop\winP\apps\ebenezer\resources\electron.asar\renderer\window-setup.js'.
C:\Users\Lauran\Desktop\Ebenezer Sing It.wxs(507) : error LGHT0103 : The system cannot find the file 'C:\Users\Lauran\Desktop\winP\apps\ebenezer\resources\electron.asar\worker\init.js'.
C:\Users\Lauran\Desktop\Ebenezer Sing It.wxs(717) : error LGHT0103 : The system cannot find the file 'C:\Users\Lauran\Desktop\winP\apps\ebenezer\resources\electron.asar\browser\api\app.js'.
C:\Users\Lauran\Desktop\Ebenezer Sing It.wxs(720) : error LGHT0103 : The system cannot find the file 'C:\Users\Lauran\Desktop\winP\apps\ebenezer\resources\electron.asar\browser\api\auto-updater.js'.
C:\Users\Lauran\Desktop\Ebenezer Sing It.wxs(723) : error LGHT0103 : The system cannot find the file 'C:\Users\Lauran\Desktop\winP\apps\ebenezer\resources\electron.asar\browser\api\browser-view.js'.
C:\Users\Lauran\Desktop\Ebenezer Sing It.wxs(726) : error LGHT0103 : The system cannot find the file 'C:\Users\Lauran\Desktop\winP\apps\ebenezer\resources\electron.asar\browser\api\browser-window.js'.
C:\Users\Lauran\Desktop\Ebenezer Sing It.wxs(729) : error LGHT0103 : The system cannot find the file 'C:\Users\Lauran\Desktop\winP\apps\ebenezer\resources\electron.asar\browser\api\content-tracing.js'.
C:\Users\Lauran\Desktop\Ebenezer Sing It.wxs(732) : error LGHT0103 : The system cannot find the file 'C:\Users\Lauran\Desktop\winP\apps\ebenezer\resources\electron.asar\browser\api\dialog.js'.
C:\Users\Lauran\Desktop\Ebenezer Sing It.wxs(735) : error LGHT0103 : The system cannot find the file 'C:\Users\Lauran\Desktop\winP\apps\ebenezer\resources\electron.asar\browser\api\global-shortcut.js'.
C:\Users\Lauran\Desktop\Ebenezer Sing It.wxs(738) : error LGHT0103 : The system cannot find the file 'C:\Users\Lauran\Desktop\winP\apps\ebenezer\resources\electron.asar\browser\api\in-app-purchase.js'.
C:\Users\Lauran\Desktop\Ebenezer Sing It.wxs(741) : error LGHT0103 : The system cannot find the file 'C:\Users\Lauran\Desktop\winP\apps\ebenezer\resources\electron.asar\browser\api\ipc-main.js'.
C:\Users\Lauran\Desktop\Ebenezer Sing It.wxs(744) : error LGHT0103 : The system cannot find the file 'C:\Users\Lauran\Desktop\winP\apps\ebenezer\resources\electron.asar\browser\api\menu-item-roles.js'.
C:\Users\Lauran\Desktop\Ebenezer Sing It.wxs(747) : error LGHT0103 : The system cannot find the file 'C:\Users\Lauran\Desktop\winP\apps\ebenezer\resources\electron.asar\browser\api\menu-item.js'.
C:\Users\Lauran\Desktop\Ebenezer Sing It.wxs(750) : error LGHT0103 : The system cannot find the file 'C:\Users\Lauran\Desktop\winP\apps\ebenezer\resources\electron.asar\browser\api\menu-utils.js'.
C:\Users\Lauran\Desktop\Ebenezer Sing It.wxs(753) : error LGHT0103 : The system cannot find the file 'C:\Users\Lauran\Desktop\winP\apps\ebenezer\resources\electron.asar\browser\api\menu.js'.
C:\Users\Lauran\Desktop\Ebenezer Sing It.wxs(756) : error LGHT0103 : The system cannot find the file 'C:\Users\Lauran\Desktop\winP\apps\ebenezer\resources\electron.asar\browser\api\module-list.js'.
C:\Users\Lauran\Desktop\Ebenezer Sing It.wxs(759) : error LGHT0103 : The system cannot find the file 'C:\Users\Lauran\Desktop\winP\apps\ebenezer\resources\electron.asar\browser\api\navigation-controller.js'.
C:\Users\Lauran\Desktop\Ebenezer Sing It.wxs(762) : error LGHT0103 : The system cannot find the file 'C:\Users\Lauran\Desktop\winP\apps\ebenezer\resources\electron.asar\browser\api\net-log.js'.
C:\Users\Lauran\Desktop\Ebenezer Sing It.wxs(765) : error LGHT0103 : The system cannot find the file 'C:\Users\Lauran\Desktop\winP\apps\ebenezer\resources\electron.asar\browser\api\net.js'.
C:\Users\Lauran\Desktop\Ebenezer Sing It.wxs(768) : error LGHT0103 : The system cannot find the file 'C:\Users\Lauran\Desktop\winP\apps\ebenezer\resources\electron.asar\browser\api\notification.js'.
C:\Users\Lauran\Desktop\Ebenezer Sing It.wxs(771) : error LGHT0103 : The system cannot find the file 'C:\Users\Lauran\Desktop\winP\apps\ebenezer\resources\electron.asar\browser\api\power-monitor.js'.
C:\Users\Lauran\Desktop\Ebenezer Sing It.wxs(774) : error LGHT0103 : The system cannot find the file 'C:\Users\Lauran\Desktop\winP\apps\ebenezer\resources\electron.asar\browser\api\power-save-blocker.js'.
C:\Users\Lauran\Desktop\Ebenezer Sing It.wxs(777) : error LGHT0103 : The system cannot find the file 'C:\Users\Lauran\Desktop\winP\apps\ebenezer\resources\electron.asar\browser\api\protocol.js'.
C:\Users\Lauran\Desktop\Ebenezer Sing It.wxs(780) : error LGHT0103 : The system cannot find the file 'C:\Users\Lauran\Desktop\winP\apps\ebenezer\resources\electron.asar\browser\api\screen.js'.
C:\Users\Lauran\Desktop\Ebenezer Sing It.wxs(783) : error LGHT0103 : The system cannot find the file 'C:\Users\Lauran\Desktop\winP\apps\ebenezer\resources\electron.asar\browser\api\session.js'.
C:\Users\Lauran\Desktop\Ebenezer Sing It.wxs(786) : error LGHT0103 : The system cannot find the file 'C:\Users\Lauran\Desktop\winP\apps\ebenezer\resources\electron.asar\browser\api\system-preferences.js'.
C:\Users\Lauran\Desktop\Ebenezer Sing It.wxs(789) : error LGHT0103 : The system cannot find the file 'C:\Users\Lauran\Desktop\winP\apps\ebenezer\resources\electron.asar\browser\api\top-level-window.js'.
C:\Users\Lauran\Desktop\Ebenezer Sing It.wxs(792) : error LGHT0103 : The system cannot find the file 'C:\Users\Lauran\Desktop\winP\apps\ebenezer\resources\electron.asar\browser\api\touch-bar.js'.
C:\Users\Lauran\Desktop\Ebenezer Sing It.wxs(795) : error LGHT0103 : The system cannot find the file 'C:\Users\Lauran\Desktop\winP\apps\ebenezer\resources\electron.asar\browser\api\tray.js'.
C:\Users\Lauran\Desktop\Ebenezer Sing It.wxs(798) : error LGHT0103 : The system cannot find the file 'C:\Users\Lauran\Desktop\winP\apps\ebenezer\resources\electron.asar\browser\api\view.js'.
C:\Users\Lauran\Desktop\Ebenezer Sing It.wxs(801) : error LGHT0103 : The system cannot find the file 'C:\Users\Lauran\Desktop\winP\apps\ebenezer\resources\electron.asar\browser\api\web-contents-view.js'.
C:\Users\Lauran\Desktop\Ebenezer Sing It.wxs(804) : error LGHT0103 : The system cannot find the file 'C:\Users\Lauran\Desktop\winP\apps\ebenezer\resources\electron.asar\browser\api\web-contents.js'.
C:\Users\Lauran\Desktop\Ebenezer Sing It.wxs(807) : error LGHT0103 : The system cannot find the file 'C:\Users\Lauran\Desktop\winP\apps\ebenezer\resources\electron.asar\common\api\callbacks-registry.js'.
C:\Users\Lauran\Desktop\Ebenezer Sing It.wxs(810) : error LGHT0103 : The system cannot find the file 'C:\Users\Lauran\Desktop\winP\apps\ebenezer\resources\electron.asar\common\api\clipboard.js'.
C:\Users\Lauran\Desktop\Ebenezer Sing It.wxs(813) : error LGHT0103 : The system cannot find the file 'C:\Users\Lauran\Desktop\winP\apps\ebenezer\resources\electron.asar\common\api\crash-reporter.js'.
C:\Users\Lauran\Desktop\Ebenezer Sing It.wxs(816) : error LGHT0103 : The system cannot find the file 'C:\Users\Lauran\Desktop\winP\apps\ebenezer\resources\electron.asar\common\api\deprecate.js'.
C:\Users\Lauran\Desktop\Ebenezer Sing It.wxs(819) : error LGHT0103 : The system cannot find the file 'C:\Users\Lauran\Desktop\winP\apps\ebenezer\resources\electron.asar\common\api\deprecations.js'.
C:\Users\Lauran\Desktop\Ebenezer Sing It.wxs(822) : error LGHT0103 : The system cannot find the file 'C:\Users\Lauran\Desktop\winP\apps\ebenezer\resources\electron.asar\common\api\is-promise.js'.
C:\Users\Lauran\Desktop\Ebenezer Sing It.wxs(825) : error LGHT0103 : The system cannot find the file 'C:\Users\Lauran\Desktop\winP\apps\ebenezer\resources\electron.asar\common\api\module-list.js'.
C:\Users\Lauran\Desktop\Ebenezer Sing It.wxs(828) : error LGHT0103 : The system cannot find the file 'C:\Users\Lauran\Desktop\winP\apps\ebenezer\resources\electron.asar\common\api\native-image.js'.
C:\Users\Lauran\Desktop\Ebenezer Sing It.wxs(831) : error LGHT0103 : The system cannot find the file 'C:\Users\Lauran\Desktop\winP\apps\ebenezer\resources\electron.asar\common\api\shell.js'.
C:\Users\Lauran\Desktop\Ebenezer Sing It.wxs(834) : error LGHT0103 : The system cannot find the file 'C:\Users\Lauran\Desktop\winP\apps\ebenezer\resources\electron.asar\renderer\api\desktop-capturer.js'.
C:\Users\Lauran\Desktop\Ebenezer Sing It.wxs(837) : error LGHT0103 : The system cannot find the file 'C:\Users\Lauran\Desktop\winP\apps\ebenezer\resources\electron.asar\renderer\api\ipc-renderer.js'.
C:\Users\Lauran\Desktop\Ebenezer Sing It.wxs(840) : error LGHT0103 : The system cannot find the file 'C:\Users\Lauran\Desktop\winP\apps\ebenezer\resources\electron.asar\renderer\api\module-list.js'.
C:\Users\Lauran\Desktop\Ebenezer Sing It.wxs(843) : error LGHT0103 : The system cannot find the file 'C:\Users\Lauran\Desktop\winP\apps\ebenezer\resources\electron.asar\renderer\api\remote.js'.
C:\Users\Lauran\Desktop\Ebenezer Sing It.wxs(846) : error LGHT0103 : The system cannot find the file 'C:\Users\Lauran\Desktop\winP\apps\ebenezer\resources\electron.asar\renderer\api\screen.js'.
C:\Users\Lauran\Desktop\Ebenezer Sing It.wxs(849) : error LGHT0103 : The system cannot find the file 'C:\Users\Lauran\Desktop\winP\apps\ebenezer\resources\electron.asar\renderer\api\web-frame.js'.
C:\Users\Lauran\Desktop\Ebenezer Sing It.wxs(852) : error LGHT0103 : The system cannot find the file 'C:\Users\Lauran\Desktop\winP\apps\ebenezer\resources\electron.asar\renderer\extensions\event.js'.
C:\Users\Lauran\Desktop\Ebenezer Sing It.wxs(855) : error LGHT0103 : The system cannot find the file 'C:\Users\Lauran\Desktop\winP\apps\ebenezer\resources\electron.asar\renderer\extensions\i18n.js'.
C:\Users\Lauran\Desktop\Ebenezer Sing It.wxs(858) : error LGHT0103 : The system cannot find the file 'C:\Users\Lauran\Desktop\winP\apps\ebenezer\resources\electron.asar\renderer\extensions\storage.js'.
C:\Users\Lauran\Desktop\Ebenezer Sing It.wxs(861) : error LGHT0103 : The system cannot find the file 'C:\Users\Lauran\Desktop\winP\apps\ebenezer\resources\electron.asar\renderer\extensions\web-navigation.js'.
C:\Users\Lauran\Desktop\Ebenezer Sing It.wxs(864) : error LGHT0103 : The system cannot find the file 'C:\Users\Lauran\Desktop\winP\apps\ebenezer\resources\electron.asar\renderer\web-view\guest-view-internal.js'.
C:\Users\Lauran\Desktop\Ebenezer Sing It.wxs(867) : error LGHT0103 : The system cannot find the file 'C:\Users\Lauran\Desktop\winP\apps\ebenezer\resources\electron.asar\renderer\web-view\web-view-attributes.js'.
C:\Users\Lauran\Desktop\Ebenezer Sing It.wxs(870) : error LGHT0103 : The system cannot find the file 'C:\Users\Lauran\Desktop\winP\apps\ebenezer\resources\electron.asar\renderer\web-view\web-view-constants.js'.
C:\Users\Lauran\Desktop\Ebenezer Sing It.wxs(873) : error LGHT0103 : The system cannot find the file 'C:\Users\Lauran\Desktop\winP\apps\ebenezer\resources\electron.asar\renderer\web-view\web-view.js'.
C:\Users\Lauran\Desktop\Ebenezer Sing It.wxs(1047) : error LGHT0103 : The system cannot find the file 'C:\Users\Lauran\Desktop\winP\apps\ebenezer\resources\electron.asar\browser\api\auto-updater\auto-updater-native.js'.
C:\Users\Lauran\Desktop\Ebenezer Sing It.wxs(1050) : error LGHT0103 : The system cannot find the file 'C:\Users\Lauran\Desktop\winP\apps\ebenezer\resources\electron.asar\browser\api\auto-updater\auto-updater-win.js'.
C:\Users\Lauran\Desktop\Ebenezer Sing It.wxs(1053) : error LGHT0103 : The system cannot find the file 'C:\Users\Lauran\Desktop\winP\apps\ebenezer\resources\electron.asar\browser\api\auto-updater\squirrel-update-win.js'.
C:\Users\Lauran\Desktop\Ebenezer Sing It.wxs(1056) : error LGHT0103 : The system cannot find the file 'C:\Users\Lauran\Desktop\winP\apps\ebenezer\resources\electron.asar\browser\api\exports\electron.js'.
C:\Users\Lauran\Desktop\Ebenezer Sing It.wxs(1059) : error LGHT0103 : The system cannot find the file 'C:\Users\Lauran\Desktop\winP\apps\ebenezer\resources\electron.asar\common\api\exports\electron.js'.
C:\Users\Lauran\Desktop\Ebenezer Sing It.wxs(1062) : error LGHT0103 : The system cannot find the file 'C:\Users\Lauran\Desktop\winP\apps\ebenezer\resources\electron.asar\renderer\api\exports\electron.js'.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.