Add script according to architecture in electron NSIS - electron

I have an electron app that includes a NSIS script to install an extra app during the installation. But that app has different exe files for 32bit and 64bit. So how can I mention which exe to include in the installer. So can I mention which nsh file to include according to version or select file to be included in the nsh script.

In normal NSIS you would just do
!include x64.nsh
Section
SetOutPath $InstDir
${If} ${IsNativeAMD64}
File x64\myapp.exe
${Else}
File x86\myapp.exe
${EndIf}
SectionEnd
I don't know anything about elecron-builder.

Related

Delphi Jedi components manual installation

I'm using Delphi CE 10.4, and it has the DCC32.exe disabled line compilation.
I'm trying to manually install Jedi components, in the readme of JCL it says that it's needed to open and edit included file to customize options, in my case, source\include\jcld27win32.inc.
I'm starting to learn Delphi, and I didn't understand whats is it is necessary to do in this file, and didn't find videos showing a manual installation.
Someone who already installed this way could help me?
Manual Installation Although it is not recommended, a manual
installation is possible. You will have to manually configure options
for the library. That is done by modifying an included file. For each
tool you want to install the JCL in, repeat the following steps:
Open and edit included file to customize options: ... For Delphi 10.4 and C++Builder 10.4 Win32: source\include\jcld27win32.inc ...
In the IDE, open and compile package Jcl.dpk (or Jcl.bpk for C++Builder) located in a subdirectory of the "packages" directory
matching your version of the IDE. This package doesn't have to be
installed since it doesn't provide any components.
If you want to install experts, open package JclBaseExpert.dpk and compile it, then you can install all the experts you want (packages
are located in the same directory).

I get a Can't load package error although the BPL is there

This issue is driving me crazy. I'm trying to compile and install The QR Designer from QuickReports 6. I have an issue just with the one package. When I right the package in the IDE > Install the IDE gives me:
Can't load package C:\xe10_3\QRDesign\Win32\Debug\dclqrd_DXE10_3.bpl.
The specified module could not be found.
But the exact file is there.
I've also tried installing it via the menu under Components > Install Packages and then choosing the BPL from there, with the same issue.
I've tried to use Process Monitor as on this post here to find the issue:
Delphi Can't load package the specified module cannot be found
I couldn't fix the issue, but what I did pick up from Process Monitor was that some process was looking for the package here:
Computer\HKEY_CURRENT_USER\Software\Embarcadero\BDS\21.0\Package Cache\dclqrd_DXE10_3.bpl
That key didn't exists. I tried manually creating the key, but that didn't do a thing.
Any ideas?
UPDATE
Here is the list of packages:
As you can see, dclqrd_DXE10_3 is dependant on two others. Which I already built and installed. I removed its references and re-added them again now, to make sure the references are sound. I guess its like Remy said, the Specified module not found is probably not referring to dclqrd_DXE10_3 although I don't know what other module it could be referring to.
To install a package successfully in IDE, follow the steps:
Open the dpk/dproj/groupproj file in IDE
Build the package(s) for Windows 32-bit platform.
IDE itself is a 32-bit applicaton, so it should match.
Normally, it will build all dependent/required packages
Check if all chain of BPL & DCP files are generated in package Output directory.
It defaults to $(BDSCOMMONDIR)\Bpl & Dcp folders, but can be changed individually for each Package in Settings.
PBL packages are like DLL files. In order to load them, it requires all dependent BPLs.
If you have custom package output paths:
Check if your DCP output path is included in Tools\Options\Language\Delphi\Library Library Path for Windows 32-bit platform
Check if no duplicates of outdated compiled packages in default $(BDSCOMMONDIR)\Bpl & Dcp directories
Add the paths to library source pas files in Tools\Options\Language\Delphi\Library Browsing path or Library path
In some specific cases, if the package requires some extra dll-s like DB Client libraries, check if these dlls are 32-bit and are loadable, like included in %path% environement variable.
Note, some libraries offers package installer tools, that automagically do all mentioned things for you.
Also, there are universal package installer tools for quick working environement setup in one click.
I don't know why this fixed my issue, but it did.
The output directories for the bpl and dcp was set to be $(Platform)\$(Config)
The project files for the different packages exists in the same folder so the above config was supposed to be the debug folder or the release folder. Why only this package was thrown off I still don't know, but since changing the above packages to have a fixed path suddenly I could now install dclqrd_DXE10_3.bpl.
Thank you all for helping.

How to create a Electron Standalone windows app

Is it possible to compile a electron app into a standalone Windows EXE. So no dependency files required. Also pass command line arguments to it?

Electron NSIS prevent reinstalling

Is there a way to have the NSIS built by Electron not re-install the app everytime it is clicked just like the MSI ? If the app is already installed I would like it to simply open it rather than re-installing.
I would use the MSI but when I open the app installed by it, it doesn't have read/write permissions from files inside the directory even if it is in Appdata (same folder as installation from NSIS). When installed from NSIS for some reason it gives read/write permissions to the app for files inside the installation directory.
Any help would be appreciated.
You need to edit your .nsi script file and do the check manually (skip the installation if an app is already installed) because there is no "switch" for that.
The issue with electron NSIS installers is that script is recreated every time (at least in the tutorials I saw) so you may lose any changes you made there.
In such case you cannot use the building pipeline, but you need to open the .nsi file with text editor, make the changes and compile everything with makensis.
Please post your script with more details.

Impossible to update Indy to latest version

I've been struggling to update Indy on my Delphi XE version and simply can't achieve this task.
Tried to follow exactly the instructions on
http://www.indyproject.org/Sockets/Docs/Indy10Installation.en.aspx
First i tried the option 1, that is :
1) use the command-line FULLD#.BAT script that corresponds to your Delphi version.
The BAT script runs, but when i open Delphi, i see no components installed.
So i tried option 2 :
2) Open the individual .dpk files in the IDE and compile them, in the following order:
IndySystemX0.dpk (in Lib\System)
IndyCoreX0.dpk (in Lib\Core)
IndyProtocolsX0.dpk (in Lib\Protocols)
dclIndyCoreX0.dpk (in Lib\Core)
dclIndyProtocolsX0.dpk (in Lib\Protocols)
The files compiled until 'IndySystem150.dpk', it returns the error below :
[DCC Fatal Error] IndySystem150.dpk(44): F2051 Unit IdIDN was compiled with a different version of IdGlobal.IndyCheckWindowsVersion
Has anyone ever get this update done ? Any hints please ?
Thanks !
If anyone has this problem, I could fix the issues by deleting all Id*.dcu files in the folder below :
C:\Program Files (x86)\Embarcadero\RAD Studio\8.0
After that I could compile and install the packages.
As described on Indy installation page :
"If Indy 10 is already installed, it needs to be uninstalled first. Remove the pre-compiled BPL files - dclIndyCoreX0.bpl and dclIndyProtocolsX0.bpl - from the IDE via the "Components > Install Packages" dialog. Then delete all of the existing binaries (IndySystemX0., IndyCoreX0., IndyProtocolsX0., dclIndyCoreX0., and dclIndyProtocolsX0.*) as well as delete any Indy 10 source files, if present. Be sure to check for files in the IDE's \bin, \lib, and \source folders, \Indy subfolders, and OS system folders."

Resources