diff --git a/src/NzbDrone.Common/EnvironmentInfo/RuntimeInfo.cs b/src/NzbDrone.Common/EnvironmentInfo/RuntimeInfo.cs index 56ace4165..5be00f9f3 100644 --- a/src/NzbDrone.Common/EnvironmentInfo/RuntimeInfo.cs +++ b/src/NzbDrone.Common/EnvironmentInfo/RuntimeInfo.cs @@ -23,7 +23,10 @@ namespace NzbDrone.Common.EnvironmentInfo serviceProvider.ServiceExist(ServiceProvider.SERVICE_NAME) && serviceProvider.GetStatus(ServiceProvider.SERVICE_NAME) == ServiceControllerStatus.StartPending; - //Guarded to avoid issues when running in a non-managed process +#if NETCOREAPP + // net5.0 will return Radarr.dll for entry assembly, we need the actual + // executable name (Radarr on linux). On mono this will return the location of + // the mono executable itself, which is not what we want. var entry = Process.GetCurrentProcess().MainModule; if (entry != null) @@ -31,6 +34,12 @@ namespace NzbDrone.Common.EnvironmentInfo ExecutingApplication = entry.FileName; IsWindowsTray = OsInfo.IsWindows && entry.ModuleName == $"{ProcessProvider.RADARR_PROCESS_NAME}.exe"; } +#else + // On mono we need to get the location of the Radarr assembly, not Mono. + // Can't be running tray app in mono. + ExecutingApplication = Assembly.GetEntryAssembly()?.Location; +#endif + } static RuntimeInfo()