1
Basics

You need Ubuntu 22.04 or 24.04.

If you are using WSL you need to use WSL 2. WSL version 1 is not supported

By default, compared with Windows, Linux comes with a small number of fonts. You may wish to install new fonts at /usr/local/share/fonts, /usr/share/fonts or ~/.local/share/fonts.

Config is held in the file system. You can select a different config file using XSettings.SetConfigFile. Temp files are held at /tmp/ImageGlue.

2
Licenses

There are no trial licenses created on Linux so you need to set a license in your code.

At application startup simply call XSettings:InstallLicense with a license key. You can use a trial license key copied from the IGSettings application on Windows or with a purchased license key.

The IGSettings application is available in the full Windows MSI installation. Download and run the MSI from our site and then look under the ImageGlue menu item for the IGSettings app. Open it and you will see a trial license key - an alphanumeric string about a hundred characters long. You can use this in your code.


3
.NET Install

Linux does not come with the .NET runtime pre-installed.

If you have not installed it and you try to publish with self-contained false, then you will get an error when you try and run the executable. Something similar to this.

[C#]

You must install .NET to run this application.
App: /home/pcuser/drawfile/drawfile
Architecture: x64
App host version: 6.0.22
.NET location: Not found


Publishing with self-contained true is a good alternative if your chosen runtime is not easily available on your distro. It increases the output size by about 60 MB but provides a simple solution.

Details of how to install the runtime may be found here. If you are using .NET 6 you might need the following.

[C#]

sudo apt update
sudo apt install dotnet-runtime-6.0


4
Deployment

The ImageGlue NuGet package contains appropriate libraries but these will be specific to the platform on which you are running. To deploy to Linux you will need to do a command line publish.

On your Windows computer open a Visual Studio developer command prompt and then navigate using cd to the location of your project.

Here we will assume that you have a project called 'drawfile", that you have a WSL Linux installation called "Ubuntu" and a Linux user called "pcuser". Run the following to deploy the release build to your Linux installation. Here we deploy assuming that the .NET runtime is already installed. If your chosen .NET runtime is not easily available on your distro then you might prefer to set self-contained to true.

[C#]

dotnet publish drawfile.csproj -r linux-x64 -c Release --self-contained false --output \\wsl.localhost\Ubuntu\home\pcuser\drawfile


You need to flag your compiled output as executable. Open up a bash shell by clicking in the Windows task bar search box and typing "bash". Enter the following.

[C#]

cd ~/drawfile
dir # just a sanity check
sudo chmod +x drawfile


Then run your executable to produce an output.

[C#]

./drawfile


5
Features

Because Linux does not offer the exact same capabilities as Windows there are some differences.

In general these differences relate to legacy code support which is not required on Linux or to Windows specific features such as WIC codecs and EMF processing.

However the limited set of fonts available on default Linux distros may also impact the display of vector formats such as PDF and PostScript.