Skip to main content

Problem:

Sometimes it is a requirement to distribute an application in only one .exe file.

How do you do this with an application that uses Dialog System for its user interface and therefore, contains its screensets in many .gs files that can not be linked?

Resolution:

It is not possible to include screensets (.gs files) within a .exe. If what you want is to distribute everything within one file, your only alternative is to create a .lbr library file.

In the earlier COBOL systems (Workbench), you could distribute an application as .int or .gnt files and any other read-only files packaged in .lbr files. You would have to include a small additional .exe file, called a trigger, to start the application. In Workbench you would use the Build utility to create this trigger, but this utility has not been included in Net Express.

In Net Express, you distribute applications linked into .exe and .dll files. .int and .gnt files are only used for running within the IDE for debugging purposes. Options in your project for the application specify whether you are creating .int files, .gnt files, or .obj files linked into .dll and .exe files. You can create .lbr files, but these are intended only to contain read-only data files.

Although it is not advisable, you could still create one .lbr file that contains all the executables as .gnt and all the screensets, but to be able to run any of the executables included in the .lbr file you would have to use the run application that is included in Application Server. This would mean installing all the files included in Application Server, resulting in many additional files installed on your deploymen machine. If the end-user already has Application Server installed on the machine, this could be an option.

So, there is no way you can have your application and the runtime system in a single file. The only alternative is having 2 files, one .exe and one .lbr. If this is acceptable to you, the preferred way of doing it would be:

- linking all you programs rts in one only .exe (take into account that some parts of the rts are only supplied in .dll format, not in .obj and linking absolutely everything in one exe is not always possible).

- packaging all his screensets in one only .lbr:

     this .lbr would have to be loaded in memory from the main program by executing a simple call, and that would make all the screensets accessible to Dialog System.

     this .lbr can be created within a Net Express project by passing all the screensets to the left hand panel, selecting all of them, right click and selecting package as .lbr.

Old KB# 6963