Wish Integrated B4JPackager11 - setting 'properties' of exe file produced

amorosik

Expert
Licensed User
Integrated B4JPackager11 currently does not implement the ability to set the properties of the exe file produced
Some functions would be useful to allow the operator, before starting the package creation process, to set the properties:
- file description
- file version
- product name
- version
- copyright
and similar
 

Peter Simpson

Expert
Licensed User
Longtime User
It really has nothing to do with B4JPackager11, just modify the InstallerScript.iss file within B4JPackager11 file manager with the following information, just save it and use it for nectg time.

Add these lines to the [Setup] section
VersionInfoProductName
VersionInfoDescription
AppVersion
AppName
AppCopyright
 

amorosik

Expert
Licensed User
It really has nothing to do with B4JPackager11, just modify the InstallerScript.iss file within B4JPackager11 file manager with the following information, just save it and use it for nectg time.

Add these lines to the [Setup] section
VersionInfoProductName
VersionInfoDescription
AppVersion
AppCopyright

Thanks for the advice
But where do I find "..InstallerScript.iss file within B4JPackager11 file manager .."?
 

Peter Simpson

Expert
Licensed User
Longtime User
But where do I find "..InstallerScript.iss file within B4JPackager11 file manager .."?

It's in the file manager when you load B4JPacker11
1627810802208.png
 

Peter Simpson

Expert
Licensed User
Longtime User
What you mean "..when you load B4Jpackager11.." ???
You're talking about the 'Integrated B4JPackager', right?

Oops, I missed the word integrated in your original post, sorry about that @amorosik :mad:

1627811239432.png


I personally DO NOT USE the integrated solution, it's too limited for my liking, so I use the external packer as it allows me to do all sorts of thing to the packed file...
 

amorosik

Expert
Licensed User
Oops, I missed the word integrated in your original post, sorry about that @amorosik :mad:

View attachment 117298

I personally DO NOT USE the integrated solution, it's too limited for my liking, so I use the external packer as it allows me to do all sorts of thing to the packed file...

Ahh, ok
But, when you write 'B4JPackager11' you mean this ???

I ask , because the form on you post is not the B4JPackager11 (that is a non-ui program)
Where can i download that program?
 

Peter Simpson

Expert
Licensed User
Longtime User
The link above is the B4JPacker11 that I use, it works with both JDK 11 and 14.

If you download the packer11 version in the link that you posted above, you can modify the .iss file to do exactly what you want or need. To me the built-in packer is good but just too limited for me.

Give it a go...
 

Peter Simpson

Expert
Licensed User
Longtime User
The integrated packager is exactly the same as the external one. It also creates the inno setup script.

I thought that I read somewhere that it was limited in some way, I stand corrected.
So @Erel once the .iss file has been created by the built-in packer, I take it that it WILL NOT be overwritten by using the built-in packer again. Basically once you have changed the .iss files to the way that you want it to be, the .iss file will stay the same until you manually change it again???
 
Last edited:

Erel

B4X founder
Staff member
Licensed User
Longtime User
So @Erel once the .iss file has been created by the built-in packer, I take it that it WILL NOT be overwritten by using the built-in packer again. Basically once you have changed the .iss files to the way that you want it to be, the .iss file will stay the same until you manually change it again???
All files under the "temp" folder will be deleted. Exactly as with the external packager (same code). You need to copy it to prevent it from being deleted.
 

amorosik

Expert
Licensed User
By copying the .iss file before starting the Internal Packager procedure, and then modifying it, is it possible to use it modified instead of the automatically generated one?
 

LucaMs

Expert
Licensed User
Longtime User
By copying the .iss file before starting the Internal Packager procedure, and then modifying it, is it possible to use it modified instead of the automatically generated one?
Of course you could if you hadn't changed anything in the project (especially if you added / removed libraries, files, ...), which is unlikely, since you wanted to recompile.

It is much better to have written the "wish" and wait to see if your request will be implemented.
 

amorosik

Expert
Licensed User
When you need a function, ".. and wait to see .." is never a good idea
I think it is a feature that could be useful to improve the development environment, and for this reason I have inserted the post in the 'wish' section
But in the meantime I have to find a solution to set the required properties
 

amorosik

Expert
Licensed User
There are many 'resource editor' for modify exe file properties
But, if it had been possible to do it in B4J code it would have been better
 

amorosik

Expert
Licensed User
That iss file is a simple text file, I was kidding, you can edit it directly; or do you mean something different?

Part of the InstallerScript-Template.iss file opened with Notepad ++:
View attachment 117323


Yes, iss file can be easy modified
But when procedure Integrated Packager is started, it delete all file on 'temp' directory
Then iss file, modified, will be removed and recreated as originally
 

Peter Simpson

Expert
Licensed User
Longtime User
All files under the "temp" folder will be deleted. Exactly as with the external packager (same code). You need to copy it to prevent it from being deleted.

Sorry I said it wrong.
The external picker has THEE original .iss file that I've modified with quiet a few templates within it. Actually forget all that, what I'm simply asking is I take it that B4J must have an InstallerScript.iss somewhere (just like the external packer does). I've modified the script with multiple settings at the top which depending on which app I'm assembling I just un-comment out (;) the project info that I don't need. In B4J packer I have the multiple InputJar lines commented out with a (') pointing to different client projects. When I need to build a package for a client, I just need to do the following three steps.

1. In B4JPacker11 un-comment (') the correct InputJar line and comment out the rest.
2. Make sure that icon.ico is the correct icon(as each build/exe uses a different ico
3. In the B4J .iss file in the file manager tab I un-comment the correct MyApp....... details for the correct client app to build.

The above three steps take less than 20 seconds, then I just hit run in B4J. In B4KPacker11 I just have to keep adding new clients projects by just adding the InputJar line and a new icon, in the .iss file I just have to copy and past the 4 MyApp......... lines and change their details for the new app. I'm B4JPacker11 the above steps 3 steps (once set up) makes assembling multiple clients apps a breeze as B4J and also the .iss file is also already set up, I just need to comment/un-comment the correct client details and click on run.

If I go to build a clients project using the internal packer I would need to constantly re-enter the MyApp...... details after every single time I build a standard package, that's what I mean by it's too limited for me. I don't want to keep entering the same details into MyApp..... in the newly generated .iss file. It would be great if I've missed something and you can say to me 'Peter you've missed this', blah blah blah.

Using B4JPacker11 once I add a new InputJar line, app_icon.ico and entered the 4 lines (currently I only use 3 of the 4 lines) into the .iss file I never ever have to do that again, I just control the builds with (') 1 line in B4J and (;) 3 lines in Inno Setup Compiler.

In B4JPacker11 I have this lot ready to go
1627892772975.png


The .iss files basically looks like this
1627892976505.png


It's so simple once setup within B4JPacker11. It would be really nice if we could somehow setup a template for the build standalone package. If there is a way Erel then please let me know. If there is not a way to set the information only once and use it multiple times (per project) then to me it's limited compared to B4JPacker11 where I don't need to constantly enter the app information time and time again.


Thank you
 
Last edited:
Top