FAQ Mono - SynoCommunity/spksrc GitHub Wiki
Mono
Mono is an open source implementation of Microsoft's .NET Framework as part of the .NET Foundation and based on the ECMA standards for C# and the Common Language Runtime.
Since .NET 6 (aka dotnet core) there is a new framework available for building cross platform applications.
There are still use cases for Mono on Linux, since some 32-bit cpu (arm and x86) are not supported by dotnet core.
Since Mono 6.0.12-20 we support a current version that includes support for .NET 4.8.
Certificate Store
Mono has it's own certificate store for CA certificates used to validate certificates for secure connections et al.
The synocommunity package has located the certificate store in
/var/packages/mono/var/.mono/certs
Certificate Update
At package installation, the certificate store is updated with the currently installed ca-certificates of DSM. The command for this update is:
/var/packages/mono/target/bin/cert-sync /etc/ssl/certs/ca-certificates.crt
The package installer installs a script containing this command to be used for later updates.
/var/packages/mono/var/update_ca_certificates.sh
There are several options how to use this script to keep the ca certificate store up-to-date
- manually ssh into your Diskstation an run the script
- create a Triggered Task in the DSM
Task Scheduler
and execute this script at system boot - create a Scheduled Task in the DSM
Task Scheduler
to execute this script manually or with a schedule
There is another option to update the ca certificate store
- You can manually download and install the mono package of the already installed version. This will update the package with the same version, and the ca certificate update is run again.
History
There where some long lasting issues, that are fixed now
- Before Version
5.20.1.34-19
there was an issue on DSM 7 (fixed in Mono: fix DSM 7 compatibility (#5604)) - Packages for aarch64 on DSM 6.1 had an error in the TLS library for all mono packages with versions > 5.8 (see Mono 5.18 SSL store problems on aarch64 platforms)