neutralinojs.github.io icon indicating copy to clipboard operation
neutralinojs.github.io copied to clipboard

No documentation on creating setup files

Open StevenStavrakis opened this issue 2 years ago • 12 comments

Expected Behavior
Documentation should describe how to include and run setup files to ensure the user device has any packages necessary to run application functions.

Actual Behavior
There is no example provided in the docs.

StevenStavrakis avatar Oct 14 '21 18:10 StevenStavrakis

Setup is no part of neutralinojs, I think. Neutralinojs only creates binaries for the different plattforms (e.h. EXE for Windows, ...).

For creating an installer / setup you can use a tool like installforge or innosetup (both are free), where you can define a lot of things (e.g. run a command in terminal before unpacking the rest).

rince1984 avatar Oct 21 '21 13:10 rince1984

Setup is no part of neutralinojs, I think. Neutralinojs only creates binaries for the different plattforms (e.h. EXE for Windows, ...).

For creating an installer / setup you can use a tool like installforge or innosetup (both are free), where you can define a lot of things (e.g. run a command in terminal before unpacking the rest).

Yes, I think you are 100% correct. The documentation doesn't need to describe how to include and run setup files, that is way out of scope for the neutralinojs project. However, listing necessary packages that neutralinojs binaries require for each platform does seem like a bit of necessary information to document.

Right now, since there is no documentation on what dependencies are required on each platform to run a program created with neutralinojs the developer is not going to know what to bundle in their innosetup/installforge installer. This means they can easily find tutorials on installer creation but nothing on what neutralinojs requires to be bundled in that installer. That is what needs clarification.

For example. I have a fresh Windows 10 installed onto a VM. If I take my neutralinojs based app and take the win_x64.exe build of it and run it on a fresh Windows 10 21H1 install then it renders just a giant white screen instead of my app. Is it a missing dependancy? I don't know, because there is no list of platform dependencies so I can't rule that out unless I try to dig into this deep enough to discern dependencies by analyzing the source code.

Even a reply to this report that lists dependencies by platform solves the problem. This becomes the documentation and saves people time in the future when they look to make installers for their neutralinojs based projects.

jquindlen avatar Oct 25 '21 02:10 jquindlen

I guess my post is null if neutralinojs has no dependencies.

jquindlen avatar Oct 25 '21 02:10 jquindlen

Should my Windows 10 installer bundle and install the Boost library? If so, is it version 1.76 as suggested by the Mac build instructions?

What version of the Microsoft C++ Runtime Redistributable should I be including if any? I also need to know this to match the Boost precompiled binary https://sourceforge.net/projects/boost/files/boost-binaries/

Or, is the expectation that each user of neutralinojs git clone this repo, setup their own dev environment and compile from source (in which case I retract my other questions but also want to note that this could drive away some web-centric developers who would be using neutralinojs as an alternative to Electron or NW.js and want neutralinojs to be as simple to deploy as those solutions.)

Maybe I am over complicating everything and the required libraries are static and embedded in the executable and so the output in the /dist/ folder such as this would be enough to run the program:

  • win_x64.exe
  • neutralinojs.log
  • res.neu
  • WebView2Loader.dll

I don't claim to be an expert at all and in fact am just throwing ideas out there in the hopes of making my neutralinojs app work for Windows 10 users.

@shalithasuranga

jquindlen avatar Oct 25 '21 20:10 jquindlen

This https://github.com/neutralinojs/neutralinojs/pull/664 pull request seems to indicate msvc-14.1 (Visual C++ 2017) and Boost 1.74. I'll try this out on my virgin Win10 21H1 VM and see if that solves my issues.

jquindlen avatar Oct 25 '21 21:10 jquindlen

After neu build you get the dist files for the different OS. You only have to include the following three files (e.g. for windows):

  • *.exe
  • res.neu
  • WebView2Loader.dll

And then in the installer make sure to execute the command CheckNetIsolation.exe LoopbackExempt -a -n="Microsoft.Win32WebViewHost_cw5n1h2txyewy" to prevent white screen for the user.

rince1984 avatar Oct 26 '21 08:10 rince1984

After neu build you get the dist files for the different OS. You only have to include the following three files (e.g. for windows):

  • *.exe
  • res.neu
  • WebView2Loader.dll

And then in the installer make sure to execute the command CheckNetIsolation.exe LoopbackExempt -a -n="Microsoft.Win32WebViewHost_cw5n1h2txyewy" to prevent white screen for the user.

That worked to get through the white screen problem. However, devtools didn't work and only a subset of javascript and CSS was functioning. This was fixed by installing Edge Webview2

jquindlen avatar Oct 26 '21 16:10 jquindlen

Hey.. all ..added some details about distribution: https://neutralino.js.org/docs/distribution/overview (not fully completed yet). Thanks for mentioning and discussing about setup files because "Application distribution" is a key part of Neutralino apps. Yeah, Neutralino alone doesn't automate installer creation. Seems like the dev community initiated setup file creation projects for Electron too. Eg: https://github.com/electron-userland

Also, there will be self-updating feature too soon :)

shalithasuranga avatar Oct 27 '21 15:10 shalithasuranga

Also, there will be self-updating feature too soon :)

Awesome all around, thanks! I'm very interested in the self updating feature.

jquindlen avatar Oct 29 '21 02:10 jquindlen

Hey.. all ..added some details about distribution: https://neutralino.js.org/docs/distribution/overview (not fully completed yet).

It's been a while since @shalithasuranga posted this and I still don't see any documentation on how to get a proper file with the configuration and resources included. I don't get how everybody makes stuff with this, given that it gives you multiple files, which isn't the norm.

KTibow avatar May 08 '22 22:05 KTibow

Hey.. all ..added some details about distribution: https://neutralino.js.org/docs/distribution/overview (not fully completed yet).

It's been a while since @shalithasuranga posted this and I still don't see any documentation on how to get a proper file with the configuration and resources included. I don't get how everybody makes stuff with this, given that it gives you multiple files, which isn't the norm.

Creating an installer could be the solution but thats no part of neutralinojs. If you create an electron app do you get a single file with all dependencies? Or if you create an app in another language (JAVA, C++, ...) do you get a single file? I think normally you have a lot of dlls and stuff to deliver out and you have to create an installer to package it for customers/users.

Personally I use the free tool Innosetup to create windows installers for my neu apps...

I dont know if someone of the community works on the installer thing in neutralinojs (in the course of Google Summer of Code). I think the biggest problem is to create an installer packager for crossplatform.

rince1984 avatar May 09 '22 11:05 rince1984

Hey, thanks for commenting @rince1984!

Creating an installer could be the solution but thats no part of neutralinojs.

I think normally you have a lot of dlls and stuff to deliver out and you have to create an installer to package it for customers/users.

In my case, I just want a single executable file - not a whole installer (because the thing I'm trying to build is actually an installer for something else).

If you create an electron app do you get a single file with all dependencies?

I believe so, after all, you download a single file when you go to download an app online.

Or if you create an app in another language (JAVA, C++, ...) do you get a single file?

Yes; java has jars and C has their own formats.

Personally I use the free tool Innosetup to create windows installers for my neu apps...

Huh. In my case, I'm using Linux to develop, and I want my program to work on all OSes.

I dont know if someone of the community works on the installer thing in neutralinojs (in the course of Google Summer of Code). I think the biggest problem is to create an installer packager for crossplatform.

I hope someone can work on it too. The main thing is I would like a bundler more than a installer. And it would be nice to have a decent range of outputs (electron-builder for context:) image

KTibow avatar May 10 '22 01:05 KTibow