electron-userland / electron-wix-msi Goto Github PK
View Code? Open in Web Editor NEW:dvd: Create traditional MSI installers for your Electron app
License: MIT License
:dvd: Create traditional MSI installers for your Electron app
License: MIT License
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.
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
)?
Is there a way to do more WIX configuration? Specifically, I am trying to set the installer icon. And eventually I want do things like:
http://wixtoolset.org/documentation/manual/v3/howtos/ui_and_localization/configure_arp_appearance.html
I added it to the path but it still doesn't work. I added it both to my user path and the pc path.
The "Should I use this" section section was removed from the README in v3, but there's still a link to it in the second paragraph. Can we get the section restored? If not, can we get the reason why, and remove the link?
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
signWithParams
property to config...
signWithParams: '/s MY /n Publisher /fd sha256 /u "Code Signing" /tr http://tsa.starfieldtech.com',
...
Install app to ex. "C:\MyApp".
How can I create shortcut in desktop after installation?
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!
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
npm audit fix
to fix them, or npm audit
for detailsIt Installs the electron-wix-msi but shows error when creating MSI package
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
Im getting the following error when run file to build installer:
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
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,
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
I have an error when running light.exe . I also have it with electron builder
electron-userland/electron-builder#3521
light.exe : error LGHT0103 : The system cannot find the file 'C:\Users\thoma\code\electron-quick-start\dist\win-unpacked\api-ms-win-core-debug-l1-1-0.dll' with type ''.
The file is in place. Can't find any relèvent documentation...
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);
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();
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)
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
I did not find any option to launch the app after installation.
Similarly, I did not find the option to create shortcut on the desktop.
Hello,
really nice tool ;) Could you provide an option to use a custom shortcut icon?
Thanks.
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,
I'm tried to modify the xml, I added this code Impersonate='no' still the application run on user privilege..
Thanks.
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?
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
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
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!
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.
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()?
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,
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
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.
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
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
How to install a mysql database software while installing electron application? Instead of installing separately.
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?
Wanted to try out this project but could not find usage steps
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?
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
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.
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>
It is happening when the file path for a file is equal or more than 260 characters.
When I shorten the name it works, but I am looking for a property to enable long file name.
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?
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?
Keeping getting this error no matter what.
Uncaught (in promise) Error: Could not find light.exe or candle.exe
Wix Toolset is installed. First time using this Toolset am i missing something?
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.
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
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'.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.