Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

No documentation on creating setup files #153

Open
StevenStavrakis opened this issue Oct 14, 2021 · 12 comments
Open

No documentation on creating setup files #153

StevenStavrakis opened this issue Oct 14, 2021 · 12 comments

Comments

@StevenStavrakis
Copy link

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.

@rince1984
Copy link
Contributor

rince1984 commented Oct 21, 2021

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).

@jquindlen
Copy link

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
Copy link

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

@jquindlen
Copy link

jquindlen commented Oct 25, 2021

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
Copy link

This neutralinojs/neutralinojs#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.

@rince1984
Copy link
Contributor

rince1984 commented Oct 26, 2021

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.

@jquindlen
Copy link

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

@shalithasuranga
Copy link
Member

shalithasuranga commented Oct 27, 2021

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 :)

@jquindlen
Copy link

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

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

@shalithasuranga shalithasuranga transferred this issue from neutralinojs/neutralinojs Dec 4, 2021
@KTibow
Copy link

KTibow commented May 8, 2022

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.

@rince1984
Copy link
Contributor

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.

@KTibow
Copy link

KTibow commented May 10, 2022

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

# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants