diff --git a/src/Loader/EnvLoader.HelperMethods.cs b/src/Loader/EnvLoader.HelperMethods.cs index 4589150..3edbe69 100644 --- a/src/Loader/EnvLoader.HelperMethods.cs +++ b/src/Loader/EnvLoader.HelperMethods.cs @@ -72,7 +72,7 @@ private Result GetEnvFilePath(string envFileName) envFileName = Path.GetFileName(envFileName); } else - path = AppContext.BaseDirectory; + path = PathResolver.BaseDirectory; for (var directoryInfo = new DirectoryInfo(path); directoryInfo is not null; diff --git a/src/Loader/PathResolver.cs b/src/Loader/PathResolver.cs new file mode 100644 index 0000000..37b2bb2 --- /dev/null +++ b/src/Loader/PathResolver.cs @@ -0,0 +1,18 @@ +namespace DotEnv.Core; + +internal class PathResolver +{ + public static string BaseDirectory + { + get + { + // AppContext.BaseDirectory may not be available in all hosting + // environments (e.g. SampSharp/open.mp). Fall back to the current + // working directory when necessary. + if (!string.IsNullOrWhiteSpace(AppContext.BaseDirectory)) + return AppContext.BaseDirectory; + + return Directory.GetCurrentDirectory(); + } + } +}